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.

#2101 Le 10/01/2014, à 21:03

Shanx

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

C’est moi ou ta chef de labo est citée dedans ? tongue


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

#2102 Le 10/01/2014, à 23:28

Dr Le Rouge

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

C'est pas toi (enfin c'était ma cheffe quand j'étais en Finlande) ; je suis pas convaincu qu'elle soit au courant qu'elle est citée par contre ^^


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

#2103 Le 11/01/2014, à 00:45

Pylades

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

Tu viens de porter atteinte à l’image de ta profession, là. neutral


“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

#2104 Le 13/01/2014, à 13:17

The Uploader

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

Gtk to Qt - A strange journey

Dernière modification par The Uploader (Le 13/01/2014, à 13:18)


- 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

#2105 Le 15/01/2014, à 06:09

grim7reaper

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

Tiens, y a eu des nouveautés sympa dans Ruby 2.1 (j’en avais pas entendu parler).
Surtout au niveau des perf’ apparemment (utilisation de GMP, nouveau GC, …).

Hors ligne

#2106 Le 15/01/2014, à 17:54

cervo

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

grim7reaper a écrit :

Tiens, y a eu des nouveautés sympa dans Ruby 2.1 (j’en avais pas entendu parler).
Surtout au niveau des perf’ apparemment (utilisation de GMP, nouveau GC, …).

Yep, y'a des features cool, en ce qui me concerne l'ajout de Exception#cause et String#scrub va me permettre de faire pas mal de clean \o/

Hors ligne

#2107 Le 18/01/2014, à 14:37

Elzen

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

Plop les gens,

j'suis en train de jouer un peu avec les modules imaplib et rfc822 en Python, et quand j'essaye de récupérer les sujets des mails, je tombe souvent sur des lignes de ce genre-là :

=?UTF-8?B?UsOpcG9uc2Ugw6AgbGEgZGlzY3Vzc2lvbiDCqyBDZXV4IHF1aSBwb3N0ZW50IGRhbnMgY2V0dGUgZGlzY3Vzc2lvbiBzZXJvbnQgYmFubmlzLiDCuw==?=

Vous sauriez s'il existe une bibli pour parser automatiquement ce genre de chaînes ? J'ai cherché un peu, mais je n'trouve rien pour le moment.

(Étant donné que l'encodage semble précisé dedans, je suppose que ça n'doit pas être hyper-compliqué à faire…)


Edit : résolu grâce à l'aide de nesthib et kanor sur IRC. Le message ci-dessus est en UTF-8 encodé en base 64, comme vous avez pu vous en rendre compte, mais le soucis est que la forme du truc varie fortement en fonction du mail. Heureusement, il existe bien une bibli dédiée qui fait la bonne manip' au bon moment :

import email.header

subject,encoding = email.header.decode_header(subject)[0]
if encoding != None: subject = subject.decode(encoding)

Tout semble rouler nickel smile

Dernière modification par Elzen (Le 18/01/2014, à 20:20)

Hors ligne

#2108 Le 24/01/2014, à 10:06

grim7reaper

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

Êtes-vous un vrai programmeur ou un mangeur de quiches ? tongue
C’est vieux (FORTRAN 77 était tout jeune apparemment), mais c’est marrant quand même (The story of Mel est pas mal aussi).

@The Uploader : alors, tu as commencé à lire le bouqin de Tanenbaum que tu as eu pour Noël ?

Hors ligne

#2109 Le 24/01/2014, à 10:59

The Uploader

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

Oh oui, plus que commencé. Je le trouve très très bon. J'adore le fait qu'il y ait des trucs basiques (comme la structure d'un CD) et des trucs très techniques ensuite (comme les algorithmes de parcage de têtes de disque dur). Mais je suis loin d'avoir fini, c'est une Bible !
Et puis il y a aussi les exos à faire. smile

J'ai aussi commencé à lire Clean Code, The Pragmatic Programmer, et Refactoring: Improving the Design of Existing Code (de Martin Fowler). smile

Dernière modification par The Uploader (Le 24/01/2014, à 10:59)


- 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

#2110 Le 25/01/2014, à 14:28

The Uploader

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

Tiens, finalement le bug ne venait pas de mon code
(et puis finalement, SDL_CondWait c'est vachement mieux qu'un SDL_Delay pour attendre que la queue du thread soit vide tongue )

[...]
		/* If queue exceeds size limit, wait for capture thread to empty queue */
		if (capture.video.q.size()>MAX_QUEUE_SIZE) {
			LOG_MSG("Writing video to disk. Please wait...");
			SDL_LockMutex(finish_mutex);
			SDL_CondWait(empty_queue, finish_mutex);
			SDL_UnlockMutex(finish_mutex);
		}
[...]

C'est aussi bien de pas dormir quand on nous demande de terminer :

[...]
int CAPTURE_VideoThread(void *videohandleptr) {
	videohandle=(video_capture_t*)videohandleptr;
	videohandle->thread_running = true;
	int rc = 0;
	/* while we have to record */
	while(CaptureState & CAPTURE_VIDEO) {
		/* Process queue while it is not empty */
		while (!videohandle->q.empty()) {
			int start = SDL_GetTicks();
			/* Process a block and write it to disk */
			if (!rc) {
				rc = CAPTURE_VideoCompressFrame(videohandle,videohandle->q.front());
			}else{
				CaptureState &= ~CAPTURE_VIDEO;
			}
			free(videohandle->q.front().videobuf);
			free(videohandle->q.front().audiobuf);
			free(videohandle->q.front().pal);
			videohandle->q.pop();
		}
		SDL_CondSignal(empty_queue);
		/* freezes otherwise if we have to finalize the recording (SDL_WaitThread) */
		if (CaptureState & CAPTURE_VIDEO) {
			/* Sleep while the queue is empty */
			SDL_LockMutex(queue_mutex);
			SDL_CondWait(non_empty_queue, queue_mutex);
			SDL_UnlockMutex(queue_mutex);
		}
	}
	videohandle->thread_running = false;
	videohandle = NULL;
	return rc;
}
[...]

(tout ça pour "rien" de toutes façons : mon nouveau PC fait tourner Quake ou Syndicate Wars dans DOSBox avec la capture video à 70 FPS dans un seul thread - le dosbox normal sur les dépôts - les doigts dans le nez sans aucun lag...  neutral )

edit : ce qui est dommage, c'est les confettis (SDL_LockMutex / SDL_UnlockMutex) requis autour des SDL_CondWait...

Dernière modification par The Uploader (Le 25/01/2014, à 15:27)


- 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

#2111 Le 25/01/2014, à 15:51

grim7reaper

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

The Uploader a écrit :

Mais je suis loin d'avoir fini, c'est une Bible !

Comme la plupart de ses livres.

The Uploader a écrit :

J'ai aussi commencé à lire Clean Code

Ce bouquin aussi a très bonne réputation.

Hors ligne

#2112 Le 26/01/2014, à 22:48

Elzen

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

Plop,

petit soucis RSS, pour changer smile
J'ai fais un flux contenant le contenu réel des articles dans la description, parce que nesthib râlait que mon flux avec juste une ligne de description cassait la mise en page du Planet TdCT, mais la validation me balance une erreur que je ne comprends pas :

description should not contain relative URL references: uttt.png

Je ne vois pas où il trouve une URL relative à la ligne indiquée… quelqu'un serait susceptible de m'éclairer ?

Edit : ah, c'est bon. C'est juste qu'il ne pointait pas la bonne ligne. Je corrige.

Dernière modification par Elzen (Le 26/01/2014, à 22:52)

Hors ligne

#2113 Le 28/01/2014, à 04:27

grim7reaper

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

Je vous déconseille de compiler ce bout de code C++ avec g++ ^^

struct x struct z<x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(x(y,x(y><y*,x(y*w>v<y*,w,x{}

Perso, j’en suis pas venu à bout : GCC m’a craché 5,6 Go d’erreurs (au sens propre) et a occupé à peu près le même espace en RAM >_<
Avec clang++ j’ai seulement 4 erreurs (mais bon, le bout de code précédent a été écrit spécialement pour g++).

Ça viens de ce blog (qui contient pas mal d’articles très intéressants au passage).

Hors ligne

#2114 Le 29/01/2014, à 16:33

Rolinh

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

Est-ce que l'un d'entre-vous s'est déjà penché sur Alembic ? Je n'arrive pas à configurer la génération de migration automatique. J'ai un soucis avec metadata sans aucun doute. C'est pour mon projet Pydeo (miroir Github). L'application est en Python + Bottle.

Hors ligne

#2115 Le 29/01/2014, à 19:20

The Uploader

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

La classe smile
(et sans rapport, mais il semble bien que j'ai enfin trouvé un job, mais pour le moment c'est 99,99% sûr seulement)

Dernière modification par The Uploader (Le 29/01/2014, à 19:20)


- 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

#2116 Le 29/01/2014, à 20:33

Rolinh

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

Cool, ça c'est une bonne nouvelle. smile

Hors ligne

#2117 Le 30/01/2014, à 02:59

grim7reaper

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

@The Uploader : GG
Tu vas bosser dans quoi alors ?

Hors ligne

#2118 Le 30/01/2014, à 17:54

Shanx

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

J’ai récupéré ce bout de code sur un vieux site, sur lequel ça semble marcher sans problème :

<script type="text/javascript" language="JavaScript">// <![CDATA[
i1 = new Image;
i1.src = "images/00001.jpg";
i2 = new Image;
i2.src = "images/00003.jpg";
// ]]></script>

<img alt="image" src="images/petit.jpg" name="nomimage1" />
<a onmouseover="nomimage1.src=i1.src" onmouseout="nomimage1.src='images/petit.jpg'" href="../index.php">Accueil</a>
<a onmouseover="nomimage1.src=i2.src" onmouseout="nomimage1.src='images/petit.jpg'" href="lien">trucMuche</a>

Par contre, une fois balancé tel quel sur un autre site (utilisant Wordpress), ça ne fonctionne plus (la seule image toujours afficher est petit.jpg, où que soit la souris). Et je ne vois absolument pas pourquoi (et je suis une grosse brêle en JS, donc bon…). Quelqu’un a une idée ?


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

#2119 Le 07/02/2014, à 17:52

Dr Le Rouge

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

Yo,

J'ai un programme A en C++ (écrit par mes soins) qui appelle un autre programme S (écrit par d'autres gens) avec la fonction "system". Vous sauriez comment je pourrais m'y prendre pour tuer S depuis A (et effectuer d'autres actions au sein de A après) si S tourne depuis trop longtemps ? J'imagine qu'il faudrait que je fasse des threads, non ?

edit : ça c'est du C-pas-++ mais ça pourrait peut-être convenir.

Dernière modification par Dr Le Rouge (Le 07/02/2014, à 18:25)


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

#2120 Le 07/02/2014, à 18:45

Pylades

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

T’es obligé d’utiliser system ? neutral Sinon, un fork puis execv et tu peux t’enquérir de l’état du fils, pas besoin de chercher midi plus tard.
En tous cas en C, mais je ne pense pas que ça diffère des masses en C++.


“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

#2121 Le 08/02/2014, à 01:48

grim7reaper

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

@Le Rouge : tu vises quoi niveau portabilité : Linux ? Systèmes POSIX ? Ou tu inclus aussi Windows ?
Car ça va influer sur la solution.

Mais je rejoins Pylades, oublie system si possible. C’est moisi pour pas mal de raisons (sécurité et portabilité entre autres).

Édit : son point de vue sur Java est pas totalement faux ^^

Dernière modification par grim7reaper (Le 08/02/2014, à 02:00)

Hors ligne

#2122 Le 08/02/2014, à 02:02

Dr Le Rouge

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

Ràf de la portabilité, si ça tourne sous linux c'est bon big_smile


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

#2123 Le 08/02/2014, à 02:52

grim7reaper

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

Ok.
Du coup, oui tu pourrais faire ça à coup de fork+execve (Linux optimise cela, y’aura pas de copie inutile) + kill.
Sinon, pour une interface plus C++ il y a Boost.Process qui devrait aussi être plus portable.

À part ça, je crois qu’il y a des discussions pour avoir un std::process dans un futur standard du C++ mais c’est encore en cours de définition il me semble.

Hors ligne

#2124 Le 08/02/2014, à 13:16

Rolinh

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

grim7reaper a écrit :

Édit : son point de vue sur Java est pas totalement faux ^^

The Universe of Discourse a écrit :

Java is neither a good nor a bad language. It is a mediocre language, and there is no struggle. In Haskell or even in Perl you are always worrying about whether you are doing something in the cleanest and the best way. In Java, you can forget about doing it in the cleanest or the best way, because that is impossible. Whatever you do, however hard you try, the code will come out mediocre, verbose, redundant, and bloated, and the only thing you can do is relax and keep turning the crank until the necessary amount of code has come out of the spout. If it takes ten times as much code as it would to program in Haskell, that is all right, because the IDE will generate half of it for you, and you are still being paid to write the other half.

Je ne peux pas être plus d'accord avec lui. Et ça tombe bien, je bouffe du Java 14h par jour depuis lundi (pour une application Android, qui sera vraisemblablement disponible sous licence open-source) donc ça me rassure bien quand au fait que c'est normal d'écrire environ 300 lignes de Java (création d'une classe qui hérite de dialog, overriding des interfaces fournie par ladite classe dans la classe qui gère l'activité, getter sur les attributs, etc...) pour faire une pop-up pour éditer un objet avec 5 attributs présent dans une liste...

Et sinon,oui, system c'est le mal, une porte ouverte aux OS command injection...

Hors ligne

#2125 Le 09/02/2014, à 09:34

The Uploader

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

grim7reaper a écrit :

@The Uploader : GG
Tu vas bosser dans quoi alors ?

.NET (wpf, wcf, linq, ...) et Web (html5, ...), au moins.


- 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