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.

#1301 Le 24/07/2011, à 14:35

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

moi : successful-troll-is-successful.jpg
big_smile

Nan sérieux dans un monde parfait le langage D aurait pris la place qu'a le C++ de nos jours. 'fin c'est mon avis. tongue


- 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

#1302 Le 24/07/2011, à 14:38

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Bah non, spa vraiment un troll. Je répond juste sur un forum à un mail d'une mailing‑list.
Mon post n'aura pas de réponse, le débat restera sans suite.
On a connu mieux comme troll tongue

The Uploader a écrit :

Nan sérieux dans un monde parfait le langage D aurait pris la place qu'a le C++ de nos jours. 'fin c'est mon avis. tongue

Ouais le D c'est tellement bien que même toi tu l'as laissé tombé big_smile

Dernière modification par grim7reaper (Le 24/07/2011, à 14:38)

Hors ligne

#1303 Le 24/07/2011, à 14:43

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

Bah c'est faute d'avoir le temps d'apprendre, j'voulais commencer à coder vite fait et coder vite donc j'ai préferé utiliser Ruby. Mais ça n'a rien à voir avec les qualités du langage/libs (j'avais trouvé un binding SDL pour le D, et puis c'est compailbe avec du code C si je me souviens bien), tout au plus son manque de popularité. wink


- 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

#1304 Le 24/07/2011, à 14:57

tshirtman

Re : /* Topic des codeurs couche-tard [5] */

The Uploader a écrit :

Je crois.

J'dirais plutôt que C++ est une perte de temps en soit. tongue
(http://librelist.com/browser//mongrel2/ … 9996b607dd tongue ).

ah, l'inimitable Zed Shawn… smile

grim7reaper a écrit :

C'est pas aussi le mec qui n'a jamais finit d'écrire Thinking in Python ?
Comme quoi tongue

Édit : ptain c'est chiant, quand on est sur la version https du forum et qu'on poste on est redirigé sur la version http mad

il pouvait pas l'appeler "thinking in python" pour diverses raisons qu'il ne veux pas perdre son temps a expliquer…, mais en effet, ce bouquin semble au point mort depuis 2008… sad

pour le redirect, → rapport de bug tongue

grim7reaper a écrit :
Zed A. Shaw a écrit :

The semantics of destructors are incredibly confusing, especially with exceptions.  You have to do all the same memory checks, use valgrind, make sure you've got destructors, and then that's made more complex by templates, object lifecycles, exception rules, etc..  Frankly C++ doesn't have better memory management than C, it just has more complex management.

Allez, encore un qui n'utilise pas les pointeurs intelligents du C++ (ou la RAII, mais les pointeurs intelligents sont justement basés sur le principe RAII) et qui vient chialer sur la gestion de la mémoire et l'écriture de code exception-safe

Je connais pas ça, ou alors tu parle des références? En tout cas, c'est pas un truc mis en avant dans l'apprentissage du C++ en général…

Zed A. Shaw a écrit :

Next, the string support is idiotic.  You seriously haven't tried to just
craft basic strings in c++ have you?  Something as simple in *every*
language as:

bstring test = bformat("I want %d ponies", count);

Turns into a giant mountain of bizarre << output to a pseudo file like
thing that has a massive chain of inheritance and is slow as dirt.

test << "I want " << count << " ponies";

Ça va la mauvaise foi roll
De plus, sa version nécessite de modifier la chaîne de format si count change de type, avec << pas besoin…

Pour la partie "slow as dirt" c'est fondé ou pas?

Zed A. Shaw a écrit :

Even something as simple as casting a float to an int is a pain in the
ass involving some weird template like syntax that frankly makes no
sense.

Ouais, ça ça s'appelle du typage fort et ça t'empêche de faire n'importe quoi.
[troll]Après si le monsieur veut faire ce qu'il veut avec les types il peut aller voir du côté de PHP[/troll]
Et puis bon, paye ta cohérence. Le paragraphe d'avant il gueule qu'il y a pleins de conversions implicites et là il chouine parce que ça se fait pas tout seul roll

Je pense qu'il parle du fait que faire "(int) somefloat" soit différent en C++ (j'en sait rien, c'est peut être valide en C++ aussi), pas du fait que ça se fasse tout seul ou pas…

Zed A. Shaw a écrit :

Next is all the bizarre fascination with const.  For some odd reason C++
loves to make you slap const on every part of a declaration, and yet I
get the same end result as C: a function is called.  You'll find crap in
C++ like const *const char &, and hell if anyone knows what that really
means since even though the pointer to a const to a const reference is
consted to hell and back, oh look you can still increment it.  They'd
have been better off to just invent a new keyword:
doesnotfuckingchange and stop there.

Mouais, alors déjà j'ai jamais vu du code comme son exemple (ha tiens, ça compile même pas…).
Et puis je ne vois pas ce qu'il a contre la const-correctness, c'est plutôt utile en général (sur le même principe on peut même faire des trucs cool avec volatile).

Je ne pense pas qu'il ait vérifié au poil prêt l'ordre ou le nombre de mot clés là ^^, il dit juste que tout une trippoté de ça ne protège même pas, mais en effet, il n'est pas précis dans son exemple…

Zed A. Shaw a écrit :

Then there's the stupidity of templates or even just basic class
structures forcing your code to gravitate into .h files, the problem of
having to jump through hoops just to get at basic POSIX C functions,
problems with ABI, horrible error messages, and C++ for Mongrel2 just
becomes a major pain in the ass.

Je ne vois pas où est le soucis dans « gravitate into .h files », en C aussi t'as souvent une blinde de .h
Bon pour le coup de l'ABI c'est un fait : le C à une ABI bien plus stable que le C++ mais bon c'est pas non plus un truc qui t'emmerde souvent.
Par contre ouais, les messages d'erreurs sont parfois assez trash hmm
M'enfin on peut toujours utiliser STLFilt

Ben avec les templates, les .h ça devient le bordel non? enfin bon, je suis incompétend dans ce langage alors bon smile, alors qu'en C, tu peux t'en passer si tu veux…

Zed A. Shaw a écrit :

Now, next comes the answer "oh just use boost".  Riiiiiigghhtt, boost is
soo much more usable.  Remember the Plague of 2000?  If I wanted to fry
my brain trying to figure out how to add two numbers with templates I'd
go use LISP.  Boost is also huge, takes forever to build, is almost
always out of date on every distro, and people avoid projects that
depend on it when building systems.

Je ne sais pas comment c'était en 2000, mais Boost fait de gros effort pour réduire le couplage entre ses modules.
Et puis le « out of date on every distro », c'est sûr que c'est la faute des dev' de Boost ça roll

Hum, si c'est sur toutes les distros, c'est pas impossible que ce soit leur faute… après, j'ai lu plusieurs témoignage de personnes ayant passer des mois a remplacer tout ce qui dépendait de boost dans un projet, par ce que ça foutait plus de bordel qu'autre chose…

Zed A. Shaw a écrit :

For MulletDB with Grace C++ was awesome, but for Mongrel2, which is a
very simple thing in C, it turns out that C++ is just a pain in the ass
for very little benefit.

Enfin une parole censée : le C++ apporte son lot de complexités donc ça sert à rien de le foutre partout et à toutes les sauces. Faut que ça soit un minimum justifié, sinon oui, autant resté au C.

il avait bien dit de s'arréter avant cette partie si on aime le C++ tongue

Ouais le C++ loin d'être un langage simple et c'est vrai que sur certains points il est pas super bien foutu (c'est pas pour rien que C++1x apporte tant de nouveautés). Mais faudrait voir à pas cacher son incompétence en disant « spa moi qui suit mauvais, c'est le langage ». Parce qu'avec ce raisonnement on en arrive à des conneries comme ça.
Le monsieur est peut‑être bon en C, mais en C++ il a pas l'air fameux (m'enfin peut‑être que le « I'm an old school C++ » explique tout, c'est sûr que s'il est resté figé sur le C++ de 1990…)

Comme beaucoup de gens?

Hors ligne

#1305 Le 24/07/2011, à 15:22

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

tshirtman a écrit :

pour le redirect, → rapport de bug tongue

k, j'irais faire ça dès que possible wink
(Édit : Done.)

tshirtman a écrit :
grim7reaper a écrit :

Allez, encore un qui n'utilise pas les pointeurs intelligents du C++ (ou la RAII, mais les pointeurs intelligents sont justement basés sur le principe RAII) et qui vient chialer sur la gestion de la mémoire et l'écriture de code exception-safe

Je connais pas ça, ou alors tu parle des références? En tout cas, c'est pas un truc mis en avant dans l'apprentissage du C++ en général…

Non je ne parle pas des références.
Pour les pointeurs intelligents, c'est vrai que le C++ était assez limité (il y en a bien un dans la STL, mais apparement sa bonne utilisation n'est pas trivial, le C++1x améliore ça en intégrant des pointeurs de Boost dans la STL).
Pour la RAII tu peux regarder ici et pour un aperçu des pointeurs intelligents .

De toutes façons, le C++ est connu pour être généralement mal enseigné hmm

tshirtman a écrit :

Pour la partie "slow as dirt" c'est fondé ou pas?

J'ai pas fait de bench, mais c'est sûr que c'est probablement plus lent qu'un simple sprintf.
Après, faut voir si le ralentissement est significatif (dépend du contexte bien sûr) et s'il ne justifie pas les avantages de >> face à un sprintf-like.
Nan parce qu'à ce compte‑là, printf aussi c'est lent et j'ai déjà vu des gens le réecrire pour booster les perf'…
M'enfin si on en reste aux perf' pure, on n'utilise pas de langage dynamique et on fait tout en C/ASM ^^

tshirtman a écrit :

Je pense qu'il parle du fait que faire "(int) somefloat" soit différent en C++ (j'en sait rien, c'est peut être valide en C++ aussi), pas du fait que ça se fasse tout seul ou pas…

Ha bah dans ce cas il peut le faire son

(int)somefloat

C'est toujours valide en C++, c'est certes mal vu  (on préfère les version static_cast, reinterpret_cast, const_cast et dynamic_cast) mais c'est tout à fait valide.

tshirtman a écrit :

Je ne pense pas qu'il ait vérifié au poil prêt l'ordre ou le nombre de mot clés là ^^, il dit juste que tout une trippoté de ça ne protège même pas, mais en effet, il n'est pas précis dans son exemple…

Bah ouais mais c'est con, parce que j'aurais justement voulu vérifier ses dires et là je ne peux pas (et j'ai pas envie de chercher la bonne combinaison…)

tshirtman a écrit :

Ben avec les templates, les .h ça devient le bordel non? enfin bon, je suis incompétend dans ce langage alors bon smile, alors qu'en C, tu peux t'en passer si tu veux…

Le bordel, non. Suffit de s'organiser un minimum.
On peut émuler le couple .h/.c++ même avec les template pour séparer un minimum la définition de l'implémentation.

Bon par contre ça resteras du template donc une syntaxe qui pique les yeux et qui demande de l'habitude pour la lire « couramment ».
Mais bon, la syntaxe template c'est un des plus gros reproches que je fait au C++.

tshirtman a écrit :

Hum, si c'est sur toutes les distros, c'est pas impossible que ce soit leur faute… après, j'ai lu plusieurs témoignage de personnes ayant passer des mois a remplacer tout ce qui dépendait de boost dans un projet, par ce que ça foutait plus de bordel qu'autre chose…

Bah sous Archlinux j'ai pas l'impression qu'on soit out of date, donc je suppose que c'est la même pour les autres rolling release.
Ouais Boost on lui a souvent reproché sont fort couplage (genre tu veux juste un module et c'est tout Boost qui se ramène…).
Et puis je peux comprendre que ça l'ai enervé si on foutait du Boost partout (y'a sûrement eu un effet de mode comme pour les Pattern où à une époque y'en a qui en mettaient dans leur code à tort et à travers juste parce que c'était LE truc du moment…)
Y'a eu beaucoup de changement depuis 2000.

tshirtman a écrit :
grim7reaper a écrit :

[…]
Le monsieur est peut‑être bon en C, mais en C++ il a pas l'air fameux (m'enfin peut‑être que le « I'm an old school C++ » explique tout, c'est sûr que s'il est resté figé sur le C++ de 1990…)

Comme beaucoup de gens?

Beaucoup, je ne sais pas.
Mais quand je lis certains code ou tutos, j'ai l'impression qu'il y en a encore trop malheureusement hmm



Édit : Bon bah apparemment même le C c'est pas son point fort à Zed A. Shaw.
Je fais quelques recherches sur le gus, je vois qu'il écrit un livre sur le C (Learn C the Hard Way) et dedans je vois ça :

int main()
{
    puts("Hello world.");
  
    return 0;
}

Ok, pas besoin d'en lire plus : encore une personne qui mélange C et C++…

Dernière modification par grim7reaper (Le 24/07/2011, à 16:18)

Hors ligne

#1306 Le 24/07/2011, à 18:31

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Πυλάδης a écrit :

Tiens, je vais faire un test : je ne push pas ma correction et je regarde si nesthib ne marque pas de points comme je l’attends. :]

J’ai gagné. :]

tshirtman a écrit :

hum, je n'étais pas au courant qu'il restait un cas ou il plantait, tu veux être plus explicite?

Ben c’est simple : il ne voit pas les HDP.

tshirtman a écrit :

edit: et ce n'est pas un patch valide tongue

Ouais, bon, je n’ai plus la version originelle du compteur, alors je fais ce que je peux. tongue


Zed A. Shaw a écrit :

You'll find crap in C++ like const *const char &, and hell if anyone knows what that really means since even though the pointer to a const to a const reference is consted to hell and back, oh look you can still increment it.

Pour moi cette phrase suffit à le décrédibiliser : le « const *const char & », ça n’a juste aucun sens, donc on voit tout de suite qu’il ne sait pas de quoi il parle. Et puis bon, s’il ne veut pas mettre de const, personne ne l’oblige, hein ; son code sera juste moins élégant, moins optimisé et potentiellement bancal.
Donc tout le paragraphe qui va avec n’est qu’un tissu d’idioties…


“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

#1307 Le 24/07/2011, à 18:52

HP

Re : /* Topic des codeurs couche-tard [5] */

Si quelqu'un a idée de formats pouvant être directement printés via lpr (cups).
Pour le moment, j'ai çà :

    allowed = ['application/pdf', 'application/ps',
               'image/jpeg', 'image/png', 'image/tiff' ]

J'ai essayé de trouver via les moteurs de recherche, mais je suppose que je ne dois pas utiliser les bons mots-clés… toujours est il que j'ai procédé de mémoire. J'ai aussi fait un topic, au cas où.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#1308 Le 24/07/2011, à 19:01

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Bon, ben en fait t’avais déjà dû corriger ça : sur le TdCT le compteur semble fonctionner correctement.


“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

#1309 Le 24/07/2011, à 19:09

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

@HP : Dans cette RFC, je crois qu'il y a une liste de format supportés (à partir du 7.18).
Ici y'en a encore (section "-F filterformat").

Dernière modification par grim7reaper (Le 24/07/2011, à 19:12)

Hors ligne

#1310 Le 24/07/2011, à 19:21

HP

Re : /* Topic des codeurs couche-tard [5] */

Merci, c'est pas mal… smile
La RFC est pas mal ; la page de manuel est vachement différente (plus complète) que celle sur mon système ! hmm
De toute façon, je n'utilise pas lpr, mais cups en Python…


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#1311 Le 24/07/2011, à 19:42

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Tiens, pour CUPS :

CUPS can handle ASCII text, HP-GL, PDF, PostScript, DVI, and many image formats (GIF, PNG, TIFF, JPEG, Photo-CD, SUN-Raster, PNM, PBM, SGI-RGB, and more) and their associated MIME types with its filters.

Chui tombé sur une page qui semble fort intéressant ici.
(Bon chez moi y'a pas de fichier /etc/cups/mime.types, mais bon…)

En gros, de ce que j'ai compris, il semble qu'il y ai des formats supportés de bases, et les autres tant que t'as des filtres de conversions ça passe.
Dans /usr/lib/cups/filter je crois qu'il y a une liste de programmes qui font les conversions (les fameux filtres), genre chez moi y a :

bannertops commandtops gstoraster hpcups hplipjs imagetoraster pstopxl rastertoepson rastertolabel
commandtoescpx foomatic-rip gziptoany hpcupsfax hpps pdftops pstotiff rastertoescpx rastertopclx
commandtopclx foomatic-rip-hplip hpcac hpgltops imagetops pstops rastertodymo rastertohp texttops

Dernière modification par grim7reaper (Le 24/07/2011, à 19:44)

Hors ligne

#1312 Le 24/07/2011, à 20:02

HP

Re : /* Topic des codeurs couche-tard [5] */

grim7reaper a écrit :

Chui tombé sur une page qui semble fort intéressant ici.
(Bon chez moi y'a pas de fichier /etc/cups/mime.types, mais bon…)

Oui, oui, pour /etc/cups/mime.types c'est juste que les « docs » ne doivent pas être à jour, car ça semble avoir été déplacé vers un (ou plusieurs) autre(s) fichier(s) ; j'avais déjà vu des pages similaires à celle en lien, et constaté l'absence/déplacement de ce fichier… sinon, oui, je vais jeter un œil à ces filtres smile.


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#1313 Le 24/07/2011, à 20:20

kamui57

Re : /* Topic des codeurs couche-tard [5] */

@grim : merci big_smile

Vous dites que le C++ est souvent mal enseigné, comment vous trouviez le bouquin que le Farfadet Spatial était en train de faire ? (il doit traîner quelque part sur ce forum)


Quand le dernier arbre aura été abattu, et le dernier animal exterminé, les hommes se rendront compte que l'argent ne se mange pas (proverbe indien)
Toshiba Satellite L655 4 Go RAM, Archlinux Gnome-shell,LXDE / W7
Toshiba Satellite M30 512 Mo RAM, Archlinux Gnome 3 restreint / Crunchbang LXDE
https://help.ubuntu.com/community/Pastebinit pour poster du texte sur internet en console

Hors ligne

#1314 Le 24/07/2011, à 20:27

helly

Re : /* Topic des codeurs couche-tard [5] */

Bha pour l’instant le bouquin est au tout tout début ^^, y’a pas encore grand chose à dire dessus…
(hey, et j’suis cité dans les sources cool)


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1315 Le 24/07/2011, à 20:32

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

kamui57 a écrit :

@grim : merci big_smile

De rien wink

kamui57 a écrit :

Vous dites que le C++ est souvent mal enseigné, comment vous trouviez le bouquin que le Farfadet Spatial était en train de faire ? (il doit traîner quelque part sur ce forum)

Son livre semblait bien parti (je lui avais remonté 2-3 erreurs il me semble), en même temps c'est le Farfadet Spatial :]. Il partait justement sur une approche différente de ce qu'on trouve dans la majorité des tutos.
Bon le problème c'est qu'il semble manquer de temps pour la rédaction et que son serveur est down depuis un certain temps donc actuellement le livre doit plus ou moins être au point mort.

Donc en attendant le best-seller du Farfadet Spatial, on peut se rabbatre sur :
- pour l'apprentissage : Programmation, Principes et pratique avec C++Bjarne STROUSTRUP, Pearson Education
- pour l'approfondissement : Le langage C++, Bjarne STROUSTRUP, Pearson Education (attention, il est assez indigeste celui là)
Pour avoir ces deux bouquins chez moi, je confirme qu'ils sont très bien niveau contenu.

Sinon, developpez.com contient pas mal de bonnes références.
Pour vraiment voir du C++ avancé, y'a deux sites pas mal donc je parle dans ce post.



@helly : ouais, bah moi aussi d'abord tongue

Dernière modification par grim7reaper (Le 24/07/2011, à 20:35)

Hors ligne

#1316 Le 24/07/2011, à 20:38

helly

Re : /* Topic des codeurs couche-tard [5] */

Putain, c’est vrai, le nouveau stroustrup, il me le faut ! mad


Archlinux-wmii-dwb.
Un problème résolu ? Faites le savoir en mettant [résolu] à côté du titre de votre topic.
Un problème non résolu ? Faites le savoir en insultant ceux qui cherchent à vous aider.
Un site bleu super remasterised©, un wiki cherchant des volontaires pour traduire un site.

Hors ligne

#1317 Le 24/07/2011, à 20:42

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Je l'ai acheté peu de temps après sa sortie en français.
Certains chapitres de la version anglaise ne sont pas traduits et sont donc absent de la version française mais t'as un code dans le livre et ça te permet de chopper les chapitres manquant en anglais sur le site de Pearson donc c'est cool smile

Hors ligne

#1318 Le 24/07/2011, à 21:12

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Nan mais j’ai une de ces envie de patcher sa tronche à bash pour qu’il ferme ça grande gueule sur les autocd… En même temps, j’ai peur de regarder le code, et puis avec Ubuntu c’est über-chiant d’avoir ta propre version de bash (ouais, il faudrait que j’achète un DD un jour).
Que faire ? Réessayer de passer à zsh ?


“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

#1319 Le 24/07/2011, à 21:22

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

zsh, c'est le bien. Surtout avec les scripts qui vont bien.


- 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

#1320 Le 24/07/2011, à 21:28

grim7reaper

Re : /* Topic des codeurs couche-tard [5] */

Ouais zsh c'est bien.
Faut juste qu'un jour j'essaye de comprendre certaines lignes dans mon zshrc >_<

Hors ligne

#1321 Le 24/07/2011, à 21:35

Pylades

Re : /* Topic des codeurs couche-tard [5] */

À ce propos, je ne sais plus où est passé le .zshrc de Rolinh. Quelqu’un l’aurait-il vu ?


“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

#1322 Le 24/07/2011, à 21:45

Pylades

Re : /* Topic des codeurs couche-tard [5] */

Πυλάδης a écrit :

Nan mais j’ai une de ces envie de patcher sa tronche à bash pour qu’il ferme ça grande gueule sur les autocd […]

T’façons les autocd c’est un trou de sécurité… Le genre de truc interdit quand t’es en root.


“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

#1323 Le 24/07/2011, à 22:29

The Uploader

Re : /* Topic des codeurs couche-tard [5] */

diff --git a/lib/events.rb b/lib/events.rb
new file mode 100644
index 0000000..767b2e3
--- /dev/null
+++ b/lib/events.rb
@@ -0,0 +1,10 @@
+module Gauge
+    module EventsLts
+        class DrawMe
+            attr_reader :sprite
+            def initialize(sprite)
+                @sprite=sprite
+            end
+        end
+    end
+end
diff --git a/lib/listener.rb b/lib/listener.rb
index 12ef4b9..0c6c445 100644
--- a/lib/listener.rb
+++ b/lib/listener.rb
@@ -1,7 +1,7 @@
 module Gauge
     module Listener
-        def initialize_listener(game)
-            @game = game
+        def initialize_listener(game=self)
+            @game = game==self ? self : game
             @subscriptions = []
             super if defined?(super)
         end
@@ -13,7 +13,7 @@ module Gauge
 
         def push(event)
             @event=event
-            eval(event.class.name[18..30].downcase)
+            eval(event.class.name.downcase.partition(":<")[0].partition("::")[2].partition("::")[2])
         end
     end
 end
diff --git a/lib/mouse_sprite.rb b/lib/mouse_sprite.rb
index 0c7f029..be14d39 100644
--- a/lib/mouse_sprite.rb
+++ b/lib/mouse_sprite.rb
@@ -1,4 +1,5 @@
 require 'listener'
+require 'events'
 require "rubygems"
 require "rubygame"
 
@@ -11,7 +12,6 @@ module Gauge
             super()
             @image=Rubygame::Surface.load("./data/mouse.png")
             @rect=@image.make_rect
-            @game.screen.show_cursor=false
             subscribe(Rubygame::Events::MouseMoved)
         end
 
@@ -20,6 +20,7 @@ module Gauge
         end
 
         def mousemoved
+            @game.push(Gauge::EventsLts::DrawMe.new(self))
             @rect.topleft=@event.pos
         end
     end
diff --git a/main.rb b/main.rb
index 2f98735..fb58d0e 100755
--- a/main.rb
+++ b/main.rb
@@ -5,15 +5,17 @@ require "rubygame"
 $LOAD_PATH << './lib'
 require 'mouse_sprite'
 require 'observer_queue'
+require 'listener'
+require 'events'
 
 module Gauge
     class Game
+        include Listener
         attr_accessor :obs_queue
-        attr_accessor :screen
-        attr_accessor :background
         def initialize
             @screen = Rubygame::Screen.open([640, 400], 0, [Rubygame::HWSURFACE, Rubygame::DOUBLEBUF])
             @screen.title = "Gauge"
+            @screen.show_cursor=false
             @background=Rubygame::Surface.load("./data/start_menu.png")
             @background.blit(@screen, [0, 0])
             @event_queue = Rubygame::EventQueue.new
@@ -27,21 +29,17 @@ module Gauge
             @sprites=Rubygame::Sprites::Group.new
             Rubygame::Sprites::UpdateGroup.extend_object @sprites
             1.times do @sprites << MouseSprite.new(self) end
+            initialize_listener(self)
+            subscribe(Gauge::EventsLts::DrawMe)
             @music=Rubygame::Music.load("./data/music/1.mp3").play
         end
 
         def run
             loop do
-                @sprites.count>10 ? @background.blit(@screen, [0, 0]) : undraw
                 update
-                draw
             end
         end
 
-        def undraw
-            @sprites.undraw(@screen, @background)
-        end
-
         def update
             seconds_passed=@clock.tick().seconds
             @event_queue.each do |event|
@@ -55,11 +53,21 @@ module Gauge
             end
         end
 
-        def draw
-            @sprites.draw(@screen)
+        def drawme
+            @event.sprite.undraw(@screen, @background)
+            @event.sprite.draw(@background)
             @screen.flip
         end
 
+        #def undraw
+        #    @sprites.count>10 ? @background.blit(@screen, [0, 0]) : @sprites.undraw(@screen, @background)
+        #end
+
+        #def draw
+        #    @sprites.draw(@screen)
+        #    @screen.flip
+        #end
+
     end
 
     game = Game.new

Bon, je pense que j'approche de la solution pour ne dessiner que quand il y a besoin, et uniquement le sprite concerné. smile

Bonne nuit. wink

Dernière modification par The Uploader (Le 24/07/2011, à 22:40)


- 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

#1324 Le 24/07/2011, à 22:40

Pylades

Re : /* Topic des codeurs couche-tard [5] */

def login():
    ''' Logs the counter in. Needs to read a file on which the logname is on
    the first line and the password is on the second line. Any extra line is
    comment. '''
    fd = open(posterfile)
    logname = fd.readline()[:-1]
    password = fd.readline()[:-1]
    fd.close()
    opener = mechanize.build_opener()
    opener.addheaders = [('User-agent', 'Mozilla/5.0 (compatible)')]
    mechanize.install_opener(opener)
    fp = mechanize.urlopen(site+'login.php')
    forms = ParseResponse(fp)
    fp.close()
    forms[1]['req_username'] = logname
    forms[1]['req_password'] = password
    mechanize.urlopen(forms[1].click()).close()

Et hop, au moins plus de warnings de dépréciation… smile

Dernière modification par Πυλάδης (Le 25/07/2011, à 02:37)


“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

#1325 Le 25/07/2011, à 00:22

HP

Re : /* Topic des codeurs couche-tard [5] */

2011072413115318541680x.th.png


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne