-
Compteur de contenus
9 821 -
Inscription
-
Dernière visite
-
Jours gagnés
5
Tout ce qui a été posté par Noob
-
Mon problème c'est surtout qu'après la première attaque ils s'étaient portés volontaire pour superviser la destruction totale des gaz syriens. A un moment donné faut aussi savoir pourquoi les Russes se permettent de raconter n'importe quoi à la communauté internationale.
-
Je te réponds ici pour éviter de pourrir le fil sur la life des liborgiens avec du jargons et du verbiage technique. Donc oublie presque tout ce que je t'ai dit. Je pensais que tu partais d'un langage complet existant avec une vm fonctionnelle déjà bien testée. Si c'est pédagogique ça change tout. Tout d'abord tu n'as pas besoin de traiter le langage Jack de base, mais seulement le langage intermédiaire qui doit sûrement être que des séquences de un deux ou trois mots. Le nom de la commande + 1 ou deux paramètres. Alors dans ton cas ce que les deux mots clés pour ton problème sont AST, et FSM dans le jargon du la mise en oeuvre de langage. Quand à savoir comment on programme ça ? Une boucle while un gros switch/case et éventuellement de la récursion et c'est marre. Tu prends ton langages de programmation préféré pour faire ça C, C# ou Python c'est égal et tu parses ton programmes avec. En gros tu split ton text en langage intermédiaire par ligne puis pour chaque ligne tu procède de la façon suivante. Tu lis le premier mot de la ligne et tu switch sur la commande. En fonction de ce que tu as décodé tu appelles une fonction pour faire le travail que tu as fait sur papier et qui te redonnera le résultat sous la forme d'une chaine de caractère que tu stockeras dans un fichier de sortie *.asm. Fini. Le gros du programme tu l'as compris se trouves dans chacune des fonctions que tu as déjà fait sur papier. La boucle ainsi que le switch sont juste là pour décoder ligne par ligne ton programme.. EDIT: J'ai jeté un oeil au site du cours il a l'air excellent, très bon choix.
-
Je raconte ma life 8, petits suisses & lapidations
Noob a répondu à un sujet de Cugieran dans La Taverne
Tu veux écrire un compilateur ? Quelle langage et quelle vm ? Tu sais que ça peut être un projet énorme si tu veux un minimum de perf ? Généralement c'est une sorte de mesure de dernier recours, tu es vraiment vraiment sûr que tu en as besoin ? Tu peux dire ce qui te fait penser que ce sera nécessaire ? Parce qu'un langage intermédiaire dépend des fonctionnalités de la VM pour par exemple allouer de la mémoire ou supporter un typage dynamique. Il y a pour la plupart des langages populaires basés sur des vm une autre vm qui produit du code natif. (Un JIT compiler donc). Par contre si tu veux produire un binaire tu risques de devoir couper dans les features du langage. Typiquement compiler un langage "open world" (comme java donc) est pas faisable dans la mesure où ça implique d'embarquer le compilateur dans le programme lui-même. Il existe une technique systématique pour faire un compilateur JIT à partir d'un interpréteur (si il est open source ça aide) mais je n'en retrouve plus le nom. SI ça t'intéresse je peux chercher. EDIT: J'ai retrouver, le terme est partial evaluation https://web.archive.org/web/20110629171734/http://www.brics.dk/~hosc/local/HOSC-12-4-pp381-391.pdf /EDIT Donc tu auras une vm différente à la fin, mais qui sera plus rapide. Par contre elle peut te bouffer plus de mémoire et de place et avoir un temps de démarrage plus long au cas ou c'est aussi un problème. Si tu comptes partir from scratch regarde que ce soit faisable. Il faut faire l'inventaires des fonctionnalités du langage de départ et de sa vm. Et voir pour chacune d'entre elles si c'est possible de faire ça sans vm (enfin dans un temps raisonnable quoi, je présume que tu veux pas le résultat après 1000000 d'heures hommes) Si oui, je regarderais du côté de llvm. https://legacy.gitbook.com/book/landersbenjamin/llvm-implementing-a-language/details Sinon est-ce que tu peux trouver les fichiers de grammaires du langage ? Parce que déduire une grammaire d'un langage alors qu'on débute dans le monde des compilateurs c'est pas une tâche facile. Généralement on écrit jamais les parsers soit même, on laisse le soin à des générateurs de produire un parser qui fera l'analyse lexicale et l'analyse syntaxique du compilateur. Et généralement ils sont disponibles en ligne. -
Pour sûr. J'ai hâte, ça fait un moment que je me demande ce qu'il reste de tout ça.
-
En ce moment mes lectures tournent autour de la Russie. J'ai fini A Very Expensive Poison de Luke Harding sur l'affaire Litvinenko et la thèse selon laquelle c'est pratiquement sûr que l'État russe est impliqué. Et là je lis Winter Is Coming de Kasparov qui fait tord le cou au pleurnicherie russes selon lesquelles l'occident fasciste ne ferait rien que les menacer. Kasparov a une certaine admiration pour Reagan que je trouve assez rafraichissante et un mépris total pour les Bush Clinton et Obama assez justifié. Je dirais que le livre de Harding est dispensable, même s'il se lit facilement. Pour avoir un aperçu de l'affaire en général je dirais que ça va plus vite de se rapporter au rapport du juge Owen. https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/493855/The-Litvinenko-Inquiry-H-C-695.pdf Harding complète tout de même l'histoire par des anecdotes personnelles sur ce qu'il a pu vivre en Russie et son traitement par le FSB. Il passe aussi en revue une bonne partie des différentes incohérences diffusées par les médias russes pour détourner l'attention des sujets chauds, notamment l'histoire du vol mh17 explosé en plein vol au-dessus de l'Ukraine. J'ai collé deux bouquins sur le KGB a ma liste de lecture, The Sword And The Shield et The World Was Going Our Way.
-
Ha ok, je croyais qu'elle te faisais la leçon sur ce que tu bouffais. Dans ce cas c'est absolument normal, tant que t'as pas un problème particulier pourquoi t'emmerder.
-
C'est ça qui me fais le plus de peine, la TV comme source d'autorité. Autant je peux comprendre quand on se fout du sujet, ça permet de gagner du temps, mais quand on prétend s'y intéresser ça me désole.
-
Police, dérive, excès de zèle & toute-puissance étatique
Noob a répondu à un sujet de Hayek's plosive dans Politique, droit et questions de société
J'ai bien aimé cet article, à ce sujet et on peut pas dire que national review soit un journal de gauchistes. https://www.nationalreview.com/2018/03/the-police-shooting-of-stephon-clark-is-deeply-problematic/ -
Ou le mode de navigation privée, ça doit marcher aussi.
-
J'ai lu les deux articles que tu avais posé, mais il existe quand même un grosse faille dans ce raisonnement: Les italiens peuvent se permettre d'expulser des imams ou des étrangers au moindre soupçon de radicalisation car ils sont justement étrangers. Quand en France l'essentiel du vivier de terro est des enfants d'immigrés nés français ça devient tout de suite moins pratique. Une erreur dans une démarche administrative peut justifier légalement un motif d'annulation de permis de séjour et mener à une expulsion, cette méthode est tout de suite moins pertinente pour des suspects ayant la nationalité française. Qu'on adopte cette méthode là est une chose avec laquelle je peux être ok, mais faut pas en attendre les même résultats. L'auteur parle ensuite de la méthode US, selon laquelle les enquêteurs pièges des radicalisés pour les inciter à commettre des attentats et les condamner à 20 ans. Si les français veulent arriver à baisser ce nombre de personnes à surveiller, il n'y aurait pas vraiment d'autres solutions. Par contre c'est moralement limite et en plus ça peut toujours mal tourner.
-
Sinon un truc qui est bien pratique pour réduire au maximum ce genre d'emmerde en C++ même si je pense que tu le sais déjà. Il s'agit de créer tes instances de classes ou tes structures sur la pile donc dans le contexte d'une fonction (sans utiliser new donc) dans la mesure du possible. Si tu dois pas passer tes objets partout ça te permet de les libérer automatiquement au retour de ta fonction. Par contre faut pas en avoir besoin après. Typiquement si tu en as besoin dans une partie de ton programme, tu fais une première fonction d'entrée qui se charge de l'allocation sur la pile comme des variables locales. Puis pour le gros du travail tu crées des fonction qui reçoivent des références. Ensuite tu appelles ces fonctions depuis ta première fonction et quand tout est fini, cette première fonction est sortie de la pile avec toute ces variables locales dont tes classes. Après si tu dois renvoyer des trucs au soft d'Adobe tu dois bien allouer ça sur le tas, mais pour le reste ça permet de limiter le nettoyage et la maintenance au minimum.
-
Effectivement ça y ressemble.
-
Non je pensais véritablement à remplacer tout ton code en C++, mais oui c'est pas forcément simple (faisable ?). C'est plus facile dans l'autre sens lorsqu'on fait appel depuis un programme en swift à des bibliothèques C++. Compiler du Swift pour windows est faisable depuis un petit moment, mais le problème viendra plutôt de la compatibilité avec le soft d'Adobe en question.
-
Il met combien de temps à se manifester ton bug ? Sinon recherche dichotomique, tu charges ton plugin avec aucun code pour valider que tout est propre après le chargement. Puis tu rajoutes la moitié de ton code tu test si ça cause le même problème. Si c'est bon tu rajoutes la moitié de ce qui reste, sinon tu coupes la moitié et tu test de nouveau. Parfois c'est plus rapide de faire comme ça, si c'est juste une dizaine d'étapes ça peut aller vite, si le bogue se manifeste tout de suite. Parce que valider chaque accès mémoire si ça fait des mois qu'on y a pas touché ça peut être un vrai cauchemar. C'est pour ça qu'un outil comme git est génial, si tu commit des bouts pas trop gros t'arrives facilement à retrouver le commit qui introduit ton bug avec git bisect. https://medium.com/appnroll-publication/xcode-git-bisect-and-you-70ba8a19c859 Sinon @ttoinou t'aurais pas intérêt à passer ton code en Swift ? Le langage étant plus safe, tu devrais moins avoir ce genre de misères.
-
T'es sûr de ta gestion de la mémoire ? Tu te serais pas planté dans ta manipulation de pointeur pour aller corrompre une autre partie du programme. Parce que si je me trompe pas, dans ta situation tu partages l'espace mémoire du programme hôte non ?
-
Ton plugin est chargé comment par l'utilisateur ? C'est possible de le démarrer depuis un terminal ? Si t'as un erreur de chargement d'une biblio tu devrais avoir un truc genre Dyld Error Symbol not found. Si tu veux simuler ça chez toi tu peux par exemple modifier DYLD_LIBRARY_PATH comme dans l'exemple ci-dessous. export DYLD_LIBRARY_PATH=/path/to/imagemagick/library:${DYLD_LIBRARY_PATH} Ici c'est pour ajouter un dossier de biblio dans lequel dyld ira chercher pour résoudre les dépendances. Le bout :${} c'est pour la concaténation, sans cela tu écraserais toute la variable et tu perdrais donc l'accès au biblio de base. Dès l'instant où tu recrées un session bash la variable DYLD_LIBRARY_PATH est remise à sa valeur par défaut. Pour tout ce qui touche à ça tu peux faire man dyld. Mais globalement tu donnes assez peu d'info pour t'aider. Pour moi un plugin c'est un truc qui est chargé par un autre programme et pas démarrer directement par l'utilisateur. Mais comme tu as un binaire je me demande comment il est chargé par ton programme. La communication passe par un pipe, un socket ? Comment le logiciel liste les plugin disponibles ? T'as une idée de la version du programme avec lequel ça marche pas ? Sans tous ces détails c'est assez chaud de te répondre.
-
J'ai fait deux trois apps, il y a quelques années pourquoi ? A mon avis c'est aussi par design. Typiquement Google utilise les résultats des captchas pour labelliser ses images pour pouvoir les utiliser dans google maps. Et Google ne va pas investir de l'argent dans la classification d'image juste pour les beaux yeux du net. Donc j'en viens à une façon simple de procéder: C'est le net qui va classifier les images pour eux. Là je spécule, mais si je devais bootstrapper un tel système je ferais comme ceci: Par exemple si une image n'a aucun label, on peut pas déterminer si les réponses aux captchas sont celles d'utilisateurs legit ou de bots. Donc on file une série d'images neuve à classifier et on fait échouer le test. Ensuite seulement on donne une série d'images déjà classifiées pour faire passer le test. Si le test réussi alors les labels de la première série sont retenus sinon ils sont rejetés. En faisant passer la même image lors de plusieurs test Google peut enfin tirer des labels satisfaisant et utiliser l'image à la fois pour les captchas et pour son propre système. Les images passent donc d'un état où elles sont vierges et ne peuvent pas servir à déterminer s'il s'agit d'un bot ou non. Puis une fois qu'elles ont été classifiées suffisamment de fois, elle entre dans le système pour le vrai test de captcha. Puis Google les vire du système une fois qu'elles ont été trop utilisése pour risquer qu'un bot les mémorise. C'est pour ça qu'à mon avis vous avez pas souvent eu un seul captcha à passer.
-
Ça je pense pas, mais quand le bilan est si terrible, ça laisse quand même des doutes sur l'efficacité des moyens employés et sur la compétence des responsable de l'assaut.
- 5 334 réponses
-
Ok en fait c'est le dépistage du sang qui est foireux, la coloscopie elle est très fiable, le seul problème c'est qu'elle peut être risquée.
-
Pareil, le rapport de force existe oui la menace physique vient d'abord des manifestants du fait de leur nombre, mais à aucun moment ça ne justifie de faire de pareil dégâts. On peut dire bien fait pour eux, mais je dirai pareil si ceux qui ont participé à l'évacuation finissent au gnouf. J'espère que non.
-
Ha bon ? Tu fais référence à quel test ? La coloscopie avec biopsie ?
-
Non mais je demandais pas les détails techniques, ... ...mais pourquoi ce test là va être remboursé à 100% ? Les autres le sont déjà ? Mais alors pourquoi celui-là ne l'était pas avant ? Ou alors les autres ne le sont pas non plus, mais alors pourquoi spécialement celui-là ? Est-ce qu'il a de tellement bonnes caractéristiques de spécificité et de sensibilité pour être un candidat à un tel changement ? Il n'y a pas de question d'évolution qui entre en ligne de compte notamment pour tes histoires de chicots ? Si t'avais pris une mutuelle pour les soins dentaires avant l'apparition de ce problème ça aurait changer qqch ?
-
A mais tout à fait, d'ailleurs même juste après peu de gens ont supporté l'usage de telles moyens.
- 5 334 réponses
-
Il me semblait que le vrai délit à Waco venait surtout du fait qu'ils rendaient automatiques des armes semi-automatiques. Ce qui est bien entendu complètement illégal.
- 5 334 réponses
-
Pourquoi le test ne l'était pas avant ? C'est quoi la différence par exemple avec un test pour un cancer du colon ?
