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.

#1901 Le 31/08/2012, à 22:14

tshirtman

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

The Uploader a écrit :
tshirtman a écrit :

Presque plus, cette année, j'ai fais du rails (plugins redmine) surtout, pas inintéressant, et bon pour voir autre chose, mais bon, j'ai plus envie de continuer à faire du python.

Redmine 1.2.x, c'est sympa, mais c'est parfois très bizarre quand tu dois faire un plugin pour... (vieilllle version de Redmine ici, basé sur Rails 2)
Quant à utiliser le plugin Redmine 1.2.x (IFPDF) pour les PDFs dans ton plugin : je préfère me droguer pour oublier.

Ouais, j'en ai fais pour 1.2, 1.3. 1.4, et des migrations d'autres plugins entre les deux, et un peu en 2.0 dernièrement… les changements sont pas énormes, j'ai trouvé, a part qu'ils ont virés les routes automatiques…

grim7reaper a écrit :
tshirtman a écrit :
grim7reaper a écrit :

Ok.
Tu as déjà un autre truc en vue ? Rapport avec Kivy ?

Oui et oui smile

Héhé, je m’en doutais ^^

En même temps c'est le truc le plus fun actuellement ou j'ai des compétences ^^. Là je suis sur un truc annexe, dont j'ai parlé un peu ici, pour manipuler les classes java en python, ben je tente d'ajouter l'héritage python de classes java, genre une api demande une classe java qui implémente telle interface, tu fait une classe python qui dérive de la classe de l'interface java, tu surcharge en python les méthodes que tu veux, et tu passe ton objet python à java, et java se débrouille… je suis pas trop loin que ça marche, je pense, ça va être fun ^^.

Dernière modification par tshirtman (Le 31/08/2012, à 22:17)

Hors ligne

#1902 Le 31/08/2012, à 23:51

Elzen

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

Pour continuer sur la liste des perspectives ci-dessus, j'ai passé cet aprem ma soutenance finale, qui s'est bien déroulée ; j'n'ai pas encore officiellement le master vu que le jury n'est pas passé, mais c'est tout comme. Et apparemment, ma thèse débute le premier octobre prochain (j'ai déposé un dossier pour un contrat d'enseignement, aussi)

Hors ligne

#1903 Le 01/09/2012, à 01:10

Dr Le Rouge

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

Et moi j'arrive en Finlande lundi et je commence mardi mon mémoire sur le spectre différentiel d'une famille de monômes dans les corps de caractéristique 2^n (ce qui impliquera de la programmation, si si si).


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

#1904 Le 01/09/2012, à 01:46

:!pakman

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

Le Rouge a écrit :

Et moi j'arrive en Finlande lundi et je commence mardi mon mémoire sur le spectre différentiel d'une famille de monômes dans les corps de caractéristique 2^n (ce qui impliquera de la programmation, si si si).

En Finlande... smile
Pour ton mémoire, tu vas sans doute bien t'amuser, à en voir le titre cool Enfin c'est cool, quand tu présente un truc comme ça, le jury ne doit même pas savoir de quoi tu causes tongue


...

Hors ligne

#1905 Le 01/09/2012, à 08:28

Mindiell

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

Mais vous êtes tous des chercheurs ou quoi ? yikes

Hors ligne

#1906 Le 01/09/2012, à 14:31

Pylades

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

Oui, pour devenir trouveurs ensuite.

BADUM TSSS!

Dernière modification par Πυλάδης (Le 01/09/2012, à 14:31)


“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

#1907 Le 01/09/2012, à 18:41

:!pakman

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

Πυλάδης a écrit :

Oui, pour devenir trouveurs ensuite.

BADUM TSSS!

Ou profs d'universités... ( * badum tsss * big_smile)


...

Hors ligne

#1908 Le 01/09/2012, à 22:15

tshirtman

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

Le Rouge a écrit :

Et moi j'arrive en Finlande lundi et je commence mardi mon mémoire sur le spectre différentiel d'une famille de monômes dans les corps de caractéristique 2^n (ce qui impliquera de la programmation, si si si).

Ah, faut que tu m'explique une blague
https://twitter.com/agnoster/status/44636629423497217

enfin… je la trouve déjà drole hein, mais y'a peut être plus à comprendre ^^.

(trouvé dans http://think-like-a-git.net)

Hors ligne

#1909 Le 02/09/2012, à 07:15

grim7reaper

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

Bon, ajout du calendrier copte et de quelques tests.
Niveau couverture, je passe de

 97% expressions used (3821/3907)
 91% alternatives used (63/69)
100% local declarations used (122/122)
 47% top-level declarations used (129/270)

à

 99% expressions used (4395/4432)
 92% alternatives used (64/69)
100% local declarations used (128/128)
 52% top-level declarations used (146/278)

smile

Hors ligne

#1910 Le 02/09/2012, à 10:02

Mindiell

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

Tu fais ca en quoi ? Et tu utilises quel outil de test/couverture ?

Hors ligne

#1911 Le 02/09/2012, à 10:26

grim7reaper

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

Là en l’occurence je code en Haskell (langage fonctionnel pur).
Les tests sont fait avec HUnit (truc traditionnel inspiré, comme les ¾ des trucs en *Unit, de JUnit) et QuickCheck (beaucoup plus intéressant, tu définies les propriétés que doit respecter ta function et il te génère des tests).

Avec HUnit j’ai des trucs du genre :

testsAppendixC ∷ Test
testsAppendixC = TestList
  [ TestCase $ mkDate (- 586)  7 24 @=? fromFixed (-214193)
  , TestCase $ mkDate (- 168) 12  5 @=? fromFixed (- 61387)
  , TestCase $ mkDate     70   9 24 @=? fromFixed    25469
[…]
  , TestCase $ mkDate   2038  11 10 @=? fromFixed   744313
  , TestCase $ mkDate   2094   7 18 @=? fromFixed   764652
  ]
  where mkDate y m = Date y (enumFromIntegral m)
[…]
runTestTT testsAppendixC

Avec QuickCheck j’ai des trucs de ce genre :

generateYear ∷ Gen Fixed
generateYear = choose (-5000, 5000)

prop_yearLength ∷ Property
prop_yearLength = forAll generateYear $ λ y →
  let (begin, end) = yearRange y
      nbDays  = (end - begin) + 1
  in if isLeapYear y then nbDays ≡ 366 else nbDays ≡ 365
[…]
quickCheckWith (stdArgs {maxSuccess = 1000}) prop_yearLength

Qui va prendre 1000 années au hasard entre -5000 et +5000 et va vérifier que l’année compte bien 365 jours (ou 266 is bissextile).
C’est très puissant cette façon de tester, mais il faut être capable de mettre les propriétés de tes fonctions sous forme de code.

La couverture mesuré grâce à HPC (Haskell Program Coverage), qui est un outil intégré de base au langage.
Y’a juste à ajouter une option à la compil’. Ça fait :

ghc --make -Wall -fno-warn-type-defaults -fhpc RunTests.hs -i../../../

Ici c’est -fhpc qui fait tout.
Ensuite tu lances ton programme comme d’hab, ça va te générer un fichier .tix. Sur ce fichier tu lances hpc :

hpc report RunTests.tix

Voire

hpc markup RunTests.tix

pour une sortie HTML et voir les zones de codes non couvertes (super bien foutu).

Pour les trucs en *Unit, 90% des langages doivent avoir ça de base où une bibliothèque qui le propose (même le C), pour les trucs genre QuickCheck je sais que le principe a été porté dans certains langages via une biblothèque mais j’ai jamais joué avec. Pour HPC, je sais pas ce qui se fait chez les autres.

Dernière modification par grim7reaper (Le 03/09/2012, à 04:34)

Hors ligne

#1912 Le 02/09/2012, à 11:45

Mindiell

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

Merci, c'est intéressant, en effet. Il faut que je commence à tester les tests unitaires avec Python justement...

Hors ligne

#1913 Le 02/09/2012, à 12:12

grim7reaper

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

Si ça t’intéresse, un QuickCheck-like existe en Python.
Pour les autres langages, Wikipédia en fait une liste.
Pour la couverture de code en Python, tu peux regarder ici.

Dernière modification par grim7reaper (Le 02/09/2012, à 12:14)

Hors ligne

#1914 Le 02/09/2012, à 17:51

Mindiell

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

Merci, je note et je prendrai le temps dès que possible !

Hors ligne

#1915 Le 03/09/2012, à 08:44

The Uploader

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

http://blogs.msdn.com/b/oldnewthing/archive/2004/02/11/71307.aspx a écrit :

Sure, we do that

The DirectX video driver interface for Windows 95 had a method that each driver exposed called something like "DoesDriverSupport(REFGUID guidCapability)" where we handed it a capability GUID and it said whether or not that feature was supported.

There were various capability GUIDs defined, things like GUID_CanStretchAlpha to ask the driver whether it was capable of stretching a bitmap with an alpha channel.

There was one driver that returned TRUE when you called DoesDriverSupport(GUID_XYZ), but when DirectDraw tried to use that capability, it failed, and in a pretty spectacular manner.

So one of the DirectDraw developers called the vendor and asked them, "So does your card do XYZ?"

Their response: "What's XYZ?"

Turns out that their driver's implementation of DoesDriverSupport was something like this:

BOOL DoesDriverSupport(REFGUID guidCapability)
{
  return TRUE;
}

In other words, whenever DirectX asked, "Can you do this?" they answered, "Sure, we do that," without even checking what the question was.

(The driver must have been written by the sales department.)

So the DirectDraw folks changed the way they queried for driver capabilities. One of the developers went into his boss's office, took a network card, extracted the MAC address, and then smashed the card with a hammer.

You see, this last step was important: The GUID generation algorithm is based on a combination of time and space. When you ask CoCreateGuid to create a new GUID, it encodes the time of your request in the first part of the GUID and information that uniquely identifies your machine (the network card's MAC address, which is required to be unique by the standards that apply to network card).

By smashing the network card with a hammer, he prevented that network card from ever being used to generate a GUID.
Next, he added code to DirectDraw so that when it starts up, it manufactures a random GUID based on that network card (which - by its having been destroyed - can never be validly created) and passes it to DoesDriverSupport. If the driver says, "Sure, we do that", DirectDraw says, "Aha! Caught you! I will not believe anything you say from now on."

J'aime lire ces vielles histoires. 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

#1917 Le 04/09/2012, à 19:52

:!pakman

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

C'est décidé, je me met à Ruby smile J'ai pas mal entendu parler de Rails, et je pense que ça vaut le coup  smile

Dernière modification par :!pakman (Le 04/09/2012, à 19:55)


...

Hors ligne

#1918 Le 04/09/2012, à 21:11

The Uploader

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

\o/

Surtout que la doc est très bien fichue ! smile

Tu as déjà fait du Ruby seul ? Essayé irb ?(j'ai une nette préférence pour Ruby 1.9.x) ruby-lang.org a des exercices sympas et des comparaisons avec d'autres langages pour bien comprendre la philosophie Ruby : http://rubykoans.com/

The Pragmatic Programmer's Guide est aussi excellent

Dernière modification par The Uploader (Le 04/09/2012, à 21:38)


- 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

#1919 Le 04/09/2012, à 21:28

The Uploader

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

ruby-doc.org a écrit :

We've used Ruby to implement parts of an X11 window manager, a task that's normally considered severe C coding.

yikes Je veux le faire !


- 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

#1920 Le 04/09/2012, à 22:12

:!pakman

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

The Uploader a écrit :

\o/

Surtout que la doc est très bien fichue ! smile

Tu as déjà fait du Ruby seul ? Essayé irb ?(j'ai une nette préférence pour Ruby 1.9.x) ruby-lang.org a des exercices sympas et des comparaisons avec d'autres langages pour bien comprendre la philosophie Ruby : http://rubykoans.com/

The Pragmatic Programmer's Guide est aussi excellent

Bah, je viens de commencer Ruby seul, avec irb, la version 1.9 (de toute façons, pour utiliser Rails, y'a besoin de connaitre Ruby avant de toute façons, non ?)

Thanx pour la doc ! wink

The Uploader a écrit :
ruby-doc.org a écrit :

We've used Ruby to implement parts of an X11 window manager, a task that's normally considered severe C coding.

yikes Je veux le faire !

Ça va être rendre l’exécution vachement lente, d'écrire des trucs C en Ruby neutral


...

Hors ligne

#1921 Le 04/09/2012, à 22:14

The Uploader

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

Non, carrément pas. Pas plus qu'en Python, j'pense, si c'est bien fait. Après, c'est justement parce que Ruby est "censé" être lent (ce qui est souvent faux) que ça m'intéresse de voir le résultat (qui n'aime pas tester les limites d'un langage ? smile ).

C'est mieux de connaître Ruby pour mieux comprendre Rails, oui.

Dernière modification par The Uploader (Le 04/09/2012, à 22:26)


- 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

#1922 Le 04/09/2012, à 22:57

Rolinh

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

The Uploader a écrit :
ruby-doc.org a écrit :

We've used Ruby to implement parts of an X11 window manager, a task that's normally considered severe C coding.

yikes Je veux le faire !

Drôle d'idée.

Hors ligne

#1923 Le 04/09/2012, à 23:44

The Uploader

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

Ouais, y'a de ça aussi.


- 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

#1924 Le 05/09/2012, à 00:10

tshirtman

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

The Uploader a écrit :
ruby-doc.org a écrit :

We've used Ruby to implement parts of an X11 window manager, a task that's normally considered severe C coding.

yikes Je veux le faire !

Bof, implémenter X oui, mais implémenter un WM, c'est loin d'etre réservé au C, et il y en a en pure Python aussi smile (http://qtile.org/, http://code.google.com/p/samurai-x/)

The Uploader a écrit :

Non, carrément pas. Pas plus qu'en Python, j'pense, si c'est bien fait. Après, c'est justement parce que Ruby est "censé" être lent (ce qui est souvent faux) que ça m'intéresse de voir le résultat (qui n'aime pas tester les limites d'un langage ? smile ).

La vitesse du langage n'est un soucis que dans les programmes cpu-bound, mais la plupart des programmes, sont bien plus io-bound, et un WM ne fait pas lourd en calcul, c'est sur…

Dernière modification par tshirtman (Le 05/09/2012, à 00:16)

Hors ligne

#1925 Le 05/09/2012, à 00:17

The Uploader

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

Je pensai justement aux WMs en Python. ^^

Ouais, pour les perfs, ça m'étonnerait aussi que ce soit lent.


- 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