Contenu | Rechercher | Menus

Annonce

Si vous rencontrez des soucis à rester connecté sur le forum (ou si vous avez perdu votre mot de passe) déconnectez-vous et reconnectez-vous depuis cette page, en cochant la case "Me connecter automatiquement lors de mes prochaines visites". Attention, le forum rencontre actuellement quelques difficultés. En cas d'erreur 502, il ne faut pas re-valider l'envoi d'un message ou l'ouverture d'une discussion, au risque de créer un doublon.

La section divers se réorganise ! De nouvelles sous-sections à venir. (plus d'infos + donner son avis)

nombre réponses : 25

#0 Re : -1 »  /* Topic des codeurs [8] */ » Le 13/05/2013, à 23:11

tshirtman
Réponses : 2274

Les boites éditrices de LL sont assez rares, oui, à part Mozilla, Canonical/RH, et d'autres très grosses structures du genre (et dont on peut toujours trouver des poux a chercher dans la tête sur le plan éthique), c'est assez rare, souvent on fait plus de la production pour des clients à base de LL, on contribue quand on peut, dans les bonnes boites, c'est assez souvent, dans les SSII habituelles, c'est jamais.

#1 Re : -1 »  /* Topic des codeurs [8] */ » Le 23/05/2013, à 22:47

tshirtman
Réponses : 2274

Hum, je ne sais plus trop comment tout ça est géré, ce wiki n'est pas du tout tenus a jours, ce n'est pas moi qui l'avais mis en place à la base, je pense que ce serait plus simple de repartir de 0 hmm.

Pour USF tu peut faire un fork sur github et faire les changements, mais vu que vous ne gardez à peu près que les artworks, peut être que faire un dépot depuis 0 aurait plus de sens. Ce que je peut faire, c'est modifier le readme (que github affiche quand on va a la racine du projet) pour pointer vers votre nouvelle version et indiquer que le projet à été repris la bas.

#2 Re : -1 »  /* Topic des codeurs [8] */ » Le 02/06/2013, à 13:22

tshirtman
Réponses : 2274
grim7reaper a écrit :

Vu sur un formulaire en ligne pour postuler sur job :

What is your race?
*White (Not Hispanic or Latino)
*Black or African American (Not Hispanic or Latino)
*Asian (Not Hispanic or Latino)
*Native Hawaiian or Other Pacific Islander (Not Hispanic or Latino)
*American Indian or Alaskan Native (Not Hispanic or Latino)
*Hispanic or Latino
*Two or More Races (Not Hispanic or Latino)
*I choose not to self identify

oO’
Ça fait bizarre quand même…

Ouais, aux US j'imagine? hmm

@Mindiell: bien passé?

@natheo: pas seulement hispanique… http://www.youtube.com/watch?v=Dcr8dm9Prkk

#3 Re : -1 »  /* Topic des codeurs [8] */ » Le 03/06/2013, à 22:00

tshirtman
Réponses : 2274
The Uploader a écrit :

Je tiens pas vraiment à faire du Web, c'est juste là où j'ai le plus d'expérience.

'fin tu as raison. C'est juste que mon diplôme date de novembre dernier, et que je me demande si j'ai pas fait une connerie à apprendre la conduite d'abord (toujours pas fini d'ailleurs) plutôt que de rechercher un travail tout de suite après l'avoir eu.

Le truc c'est que j'ai commencé la conduite justement parce que j'ai raté du boulot à cause de ça.

*broie du noir*

Au moins j'ai mis à jour mon CV sur monster et l'APEC.

Désolé si ça devient le topic de ma life. Un modo pourra sûrement couper les deux fils de discussion.

Hum, t'avais pas des connaissances solides en OS (choses internes à windows, notemment) et en C (contribution a dosbox, oui, mais d'autres choses aussi il me semble), toi? Tu t'éclaterais pas plus à bosser dans la sécurité (informatique, bien sur wink) ? Je crois que ça paye sérieusement mieux que le web (même que le RoR), ça manque vraiment de gens compétends, à ce que j'entends dire, et les salaires suivent (bon, peut être pas autant que cobol, mais c'est moins horrible je pense ^^).

#4 Re : -1 »  /* Topic des codeurs [8] */ » Le 04/06/2013, à 01:22

tshirtman
Réponses : 2274

Ah mais je pense que dans cette branche on attends pas de toi forcément d'être productif tout de suite (avec 0 considération pour la qualité) justement, je pense que si le domaine t'intéresse, tu devrais pouvoir trouver des boites ou tu peux monter en compétences là dessus smile. Enfin, c'est une idée quoi, je sais en tout cas que ça manque plus que les devs webs.

edit: Ah, et t'as mis ton CV sur lolix, quand même?

#5 Re : -1 »  /* Topic des codeurs [8] */ » Le 05/06/2013, à 13:19

tshirtman
Réponses : 2274

Ça a l'air sympa les challenges crypto, je leur ai envoyé un ptit mail du coup, on verra bien smile

#6 Re : -1 »  /* Topic des codeurs [8] */ » Le 07/06/2013, à 19:33

tshirtman
Réponses : 2274
grim7reaper a écrit :

Ça me tente bien aussi.
Sauf que là j‘ai juste absolument pas de temps pour ça >_<, donc ça attendra.

Bah, pour l'instant, j'ai pas reçu de mail, donc on peut pas dire que ça me prenne du temps tongue

Mindiell a écrit :

@tshirtman: ayé, le couperet est tombé, ils m'ont choisi moi \o/

\o/ super cool!

#7 Re : -1 »  /* Topic des codeurs [8] */ » Le 13/06/2013, à 19:42

tshirtman
Réponses : 2274

coucou smile

Pour le scrapping, la dernière fois que j'ai fait ça, j'ai pris lxml (qui peut prendre une adresse web directement en paramettre) et c'était très bien, mieux que beautifulsoup je dirais, mais bon, ça fait des années que je n'ai pas touché ce dernier (le bot des couches tards :]). Sinon requests est extrèmement populaire, c'est vraiment une bonne lib, avec une interface bien foutus, c'est le genre qui fait "90% du besoin, avec 10% de la complexité", et c'est très bien comme ça.

#8 Re : -1 »  /* Topic des codeurs [8] */ » Le 30/06/2013, à 10:48

tshirtman
Réponses : 2274

pyinstaller…

#9 Re : -1 »  /* Topic des codeurs [8] */ » Le 06/07/2013, à 01:00

tshirtman
Réponses : 2274

@Elzen: tu voudrais pas ":set autoindent" au lieu de (probablement) ":set smartindent" pour corriger ton soucis d'indentation?

Elzen a écrit :

D'ailleurs, ça me fait penser à un truc.
Sur la promo dans laquelle je fais cours, apparemment, l'un des premiers réflexes des enseignants est d'apprendre à leurs élèves à configurer leur éditeur pour utiliser des espaces à la place des tabulations. Le résultat, j'ai pu le constater à chaque rendu de code cette année, est qu'il y a très peu de code correctement indenté : le nombre d'espaces utilisé varie d'un bloc à l'autre (on fait du Java, donc ça passe)
J'ai bien envie de suggérer (et de faire moi-même, vu que j'aurai des premières années l'an prochain) qu'on insiste sur l'indentation, mais en leur disant d'utiliser des tabs, juste pour voir si le résultat sera du même niveau ou pas. Tiens, d'ailleurs, je vais envoyer un mail à mes collègues maintenant. Si ça passe, je vous tiendrai au courant smile

Je pense que ça s'explique plus par de la retouche d'algo a la mode coupé/collé, en laissant l'éditeur gérer l'indentation la plupart du temps à l'insertion, que par quoi que ce soit d'autre (peut être qu'ils corrigent manuellement un bloc de temps a autres pour des critères esthétiques obscures). Je pense que de passer aux tabulations augmenterait juste la taille de l'anomalie visuelle (mais diminuerais peut-être leur nombre, du fait de l'augmentation de taille).

#10 Re : -1 »  /* Topic des codeurs [8] */ » Le 06/07/2013, à 01:02

tshirtman
Réponses : 2274
grim7reaper a écrit :

Sinon les compilateurs ont pas mal d’avantages mais j’ai souvent entendu dire que l'asm généré était loin d’être performant (ce qui n’est pas un problème dans la majorité des cas, mais il faut le savoir).


tongue

#11 Re : -1 »  /* Topic des codeurs [8] */ » Le 17/07/2013, à 22:49

tshirtman
Réponses : 2274

Tiens, je me décide à me mettre à l'haskell, ça fera plaisir à certains smile

Cependant, je ne comprends pas bien encore tout, je fais des exercices un peu basiques pour me dérouiller, ma méthode est surement très mauvaise, mais j'apprends vraiment par la pratique alors on affinera plus tard.

-- our imports
import qualified Data.Char
import qualified Data.List
import qualified Data.Bits

-- data definition
hex = "0123456789abcdef"

-- convert an hex char to its int value
hex2int :: Char -> Maybe Int 
hex2int c = Data.List.elemIndex c hex 

-- convert all the legal hex symbols in a string into the equivalent integer
stringHexDecode :: [Char] -> [Int]
stringHexDecode (h:t) = do
        let x = hex2int h
        if x == Nothing 
                then stringHexDecode t 
                else [x] ++ stringHexDecode t
stringHexDecode [] = []

il semble compiler stringHexDecode avec [Maybe Int] comme type de retour, hors, j'élimine bien cette possibilité normalement, et je pense que je devrais avoir [Int], ce qui m'arrangerais bien pour la suite, je pourrais supposer que c'est une limitation de compiler, mais je me dis que c'est plus probablement moi qui loupe un truc… des suggestions? smile

edit: ahah! Data.Maybe.mabeToList permet de modifier stringHexDecode comme ça:

-- convert all the legal hex symbols in a string into the equivalent integer
stringHexDecode :: [Char] -> [Int]
stringHexDecode (h:t) = Data.Maybe.maybeToList (hex2int h) ++ stringHexDecode t
stringHexDecode [] = []

et du coup ça, passe, en plus propre… je suppose qu'il faudrait que je regarde le code du module Maybe poupr mieux comprendre… on verra plus tard.

#12 Re : -1 »  /* Topic des codeurs [8] */ » Le 18/07/2013, à 07:54

tshirtman
Réponses : 2274
grim7reaper a écrit :

Ha tiens smile
Et pourquoi tu te mets à Haskell ?

Je pense qu'un bon dev doit avoir plusieurs cordes à son arc, et le problème de python c'est que si je lui trouve des défauts, tout ce que j'ai pus voir d'autre me semble en avoir bien plus, dur d'apprendre un autre langage, du coup, ça fais pas mal de temps que je vois des gens vanter la syntaxe d'haskell, et il a des propriété très différentes de python (typage fort, fort parallelisme), donc je me dis que c'est un bon complément, même s'il a une popularité apparemment faible en dehors de certains cercles universitaires assez restreint, je me dis que c'est toujours bon à apprendre. Bref, envie d'apprendre un truc, et tout le reste semble ne pas valoir le coup tongue.

Ouais, c’est bourré de concept un peu déroutant quand on vient de la prog’ impérative. Même en venant de prog’ fonctionnelle style Lisp je pense qu’il y a aussi pas mal de nouveaux trucs (genre les foncteurs applicatifs, les monoïdes, les monades, …)

Ouais, moi aussi je pourrais faire des phrases sybillines sur les monoides endofunctors et autres trucs que personnes comprends bientôt \o/.

tshirtman a écrit :

il semble compiler stringHexDecode avec [Maybe Int] comme type de retour, hors, j'élimine bien cette possibilité normalement, et je pense que je devrais avoir [Int], ce qui m'arrangerais bien pour la suite, je pourrais supposer que c'est une limitation de compiler, mais je me dis que c'est plus probablement moi qui loupe un truc… des suggestions? smile

Ça vient bien de toi wink
Le compilo’ est vraiment super malin en Haskell (en partie grâce au langage lui-même). Il peut faire des optimisations assez impressionnante qui apporte de gros gains de perf’, genre stream fusion (cf. ce papier de Microsoft Research : Haskell Beats C Using Generalized Stream Fusion).

Ouais il me semblait bien qu'il était assez balaise sur ce genre de choses, ça m'étonnait de le planter sur un truc aussi basique smile.

Donc bon, sauf bug il ne se plante jamais sur l’inférence des types.

Bon pour en revenir à ton problème, il vient d’ici :

        let x = hex2int h
        if x == Nothing 
                then stringHexDecode t 
                else [x] ++ stringHexDecode t

Dans le else tu utilises x (un Maybe Int).
Au passage, tu n’as pas besoin du do ici, tu t’en sers juste juste pour écrire le code d’une manière impérative et c’est pas bien tongue
Tu pourrais reformuler comme ça (mais on reste avec le problème du Maybe Int) :

stringHexDecode :: [Char] -> [Int]
stringHexDecode (h:t) = let x = hex2int h
                        in if x == Nothing
                           then stringHexDecode t
                           else [x] ++ stringHexDecode t
stringHexDecode [] = []

C'est vrai, j'étais pas fier du "do" tongue, content (mais pas surpris wink) de voir qu'on peux faire mieux smile.

Perso, j’aurais écris ton code comme ça :
- suppression des import inutiles
- utilisation de l’équivalent du from A import xxx de Python pour n’importer que la fonction elemIndex

Oui, j'avais vu cette notation, mais je suis partis sur de fully qualified, je sais pas trop pourquoi, c'est vrai que je fais souvent ce type d'import en python.

- utilisation du case of pour déconstruire le Maybe

Ah, le cœur de mon sujet smile

import Data.List (elemIndex)

-- data definition
hex = "0123456789abcdef"

-- convert an hex char to its int value
hex2int :: Char -> Maybe Int
hex2int c = elemIndex c hex

-- convert all the legal hex symbols in a string into the equivalent integer
stringHexDecode :: [Char] -> [Int]
stringHexDecode [] = []
stringHexDecode (h:t) = case hex2int h of
                          Nothing -> stringHexDecode t
                          Just x  -> [x] ++ stringHexDecode 

Donc, tester sur la valeur ne suffisait pas, même si Nothing est la seule valeur non Int possible, il faut indiquer la dichotomie sur le type pour qu'il s'en sorte?

Sinon, il y aussi moyen de passer par le fonction digitToInt de Data.Char, mais du coup ça lève une exception si le caractère est pas convertible.

Oui, j'ai vu celle ci, mais dans le cadre de l'exo, je pense que c'est bien que je maîtrise tous les aspects du décodage de la chaîne.

tshirtman a écrit :

edit: ahah! Data.Maybe.mabeToList permet de modifier stringHexDecode comme ça:

-- convert all the legal hex symbols in a string into the equivalent integer
stringHexDecode :: [Char] -> [Int]
stringHexDecode (h:t) = Data.Maybe.maybeToList (hex2int h) ++ stringHexDecode t
stringHexDecode [] = []

et du coup ça, passe, en plus propre… je suppose qu'il faudrait que je regarde le code du module Maybe poupr mieux comprendre… on verra plus tard.

Tiens, tant que j’y pense.
Il y a un moteur de recherche super bien fait pour haskell : hoogle.

Oui, je l'avais déjà oublié lui big_smile, bien adapté pour le coup.

Par exemple dans ton cas, ton problème c’est que tu obtenais une liste de Maybe Int (i.e [Maybe Int]), mais tu voulais une liste de Int (i.e [Int])
Si on généralise ton problème, tu avais donc besoin d’une fonction qui fait [Maybe a] -> [a].
Si tu tapes ça dans hoogle, tu vas avoir en premier résultat catMaybes du module Data.Maybe.

http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-Maybe.html#v:catMaybes a écrit :

The catMaybes function takes a list of Maybes and returns a list of all the Just values.

On peut donc encore simplifier :

import Data.List (elemIndex)
import Data.Maybe (catMaybes)

-- data definition
hex = "0123456789abcdef"

-- convert an hex char to its int value
hex2int :: Char -> Maybe Int
hex2int c = elemIndex c hex

-- convert all the legal hex symbols in a string into the equivalent integer
stringHexDecode :: [Char] -> [Int]
stringHexDecode = catMaybes . map hex2int

Bon là pour stringHexDecode j’ai utilisé la composition de fonction + curryfication (ce qui est courant en Haskell, c’est pas du tout de l’obfuscation pour gagner quelques caractères).

Pas de soucis, j'ai vu cette fonction "(.)", et j'aime beaucoup le concept, même si m'en sert pas encore très bien smile.

Mais c’est équivalent à :

stringHexDecode :: [Char] -> [Int]
stringHexDecode s = catMaybes $ map hex2int s
-- ou, mais moins joli je trouve
-- stringHexDecode :: [Char] -> [Int]
-- stringHexDecode = catMaybes (map hex2int s)

Récemment, un tuto est sur developpez.com sur la réalisation d’un petit moteur de raytracing en Haskell (partie 1 et 2 pour le moment).
Ça donne une petit idée de ce que l’on peut faire avec ce langage smile

classe smile

Bon OK, des malades on fait un raytracer en C++ (il y a aussi eu une version en D, cette dernière étant probablement plus lisible je pense, vu la syntaxe template du C++ ^^") où tout est fait à la compilation (vive les template). C’est à dire que le compilo produit une image au final :]

J'étais en train de me dire "ben des raytracer en c++ il doit y en avoir des pelletées, non?", puis j'ai compris la dernière phrase… en effet, je veux même pas voir le "code" ^^.

Bon sinon j’ai prévu de retourner sur Arch' bientôt (dès mon retour en France normalement, la connexion ici c’est pas le top…), probablement sur Xfce dans un premier temps (temporairement ou pas je verrais, ça me fera l’occasion de le tester en tout cas)

T'es sur quoi actuellement?

#13 Re : -1 »  /* Topic des codeurs [8] */ » Le 18/07/2013, à 11:14

tshirtman
Réponses : 2274

@grim: ok, je pense que je viens de saisir la subtilité du ”Just”, merci smile

#14 Re : -1 »  /* Topic des codeurs [8] */ » Le 20/07/2013, à 00:08

tshirtman
Réponses : 2274

Dans le genre optimisation pas trop dur, tu pourrais cythonizer tes methodes de conversion rgb, en ajoutant des types (int) aux arguments ça ira beaucoup plus vite qu'en python pur, de plus, tu peut faire du nogil sur ces methodes, et donc avoir une meilleur parallelisation…

#15 Re : -1 »  /* Topic des codeurs [8] */ » Le 29/07/2013, à 13:05

tshirtman
Réponses : 2274

Bon, j'ai une galère relou, et j'ai pas trop d'idée de comment trouver la source du problème.

j'ai mis mon nexus 4 a jours d'android 4.3 ce weekend, et une chose que j'avais pas prévus, c'est que ça pête python-for-android. hmm

L'ors d'un import d'une lib dont je dépends, il se passe ça

I/python  ( 3368):   File "/home/gaby/lcs/kitch/.buildozer/android/platform/python-for-android/build/python-install/lib/python2.7/stringprep.py", line 8, in <module>
I/python  ( 3368): ImportError: dlopen failed: invalid flags to dlopen: 102

et apparement, ils ont en effet ajouté un check sur les valeurs de flags dans cette nouvelle version…
http://www.funkyandroid.com/aosp-JDQ39-JWR66V.html
on peut voir le changeset

-soinfo* do_dlopen(const char* name) {
+soinfo* do_dlopen(const char* name, int flags) {
+  if ((flags & ~(RTLD_NOW|RTLD_LAZY|RTLD_LOCAL|RTLD_GLOBAL)) != 0) {
+    DL_ERR("invalid flags to dlopen: %x", flags);
+    return NULL;
+  }

plusieurs fois…

le soucis maintenant, c'est de trouver *ou* est l'appel de dlopen qui fait crasher, sachant que ça se passe sur android, je pourrais me relancer dans le gdb distant mais c'est un peu relou à mettre en place, et le grep de dlopen dans la codebase renvois du monde… hmm

@grim: arf, je me souviens d'avoir vu la vidéo de cette conf, ça avait en effet l'air d'être un sacré mec, c'est con de perdre des gens comme ça sad.

#16 Re : -1 »  /* Topic des codeurs [8] */ » Le 29/07/2013, à 16:12

tshirtman
Réponses : 2274

yep, c'est bien un soucis avec les valeurs différentes, il y a des modules qui essayent de deviner les valeurs quand ils n'arrivent pas a faire certains imports, on a d'abords trouvé libxslt (https://github.com/twobob/buildroot-kin … libxsl.py/) mais apparement c'est pas lui, ensuite pyopenssl (https://github.com/msabramo/pyOpenSSL/b … _init__.py) qui a l'air coupable (on a wrappé sys.setdlopenflags pour tracer ce cas), là on regarde pour fixer ctypes ou DLFCN pour le target (on en a un pour linux2, mais sys.platform renvois maintenant linux3, forcément).

#17 Re : -1 »  /* Topic des codeurs [8] */ » Le 29/07/2013, à 16:48

tshirtman
Réponses : 2274

monkey patching smile dans mon programme, avant les imports

http://paste.ubuntu.com/5925415/

Et oui, c'était bien vu de ta part smile

Edit: c'est réglé smile

#18 Re : -1 »  /* Topic des codeurs [8] */ » Le 25/08/2013, à 17:54

tshirtman
Réponses : 2274

… Ou pelican, qui est comme octopress mais en python tongue

\o

Sinon joli explication de bug, mais il reste un mystère big_smile si la condition est irréalisable, pourquoi la boucle s'arrête t'elle quand c'est pas optimisé? (j'ai peut être loupé la réponse dans l'explication ^^).

smile

edit: après avoir relu le premier de tes articles cités, je crois comprendre, c'est l'un des exemples d'UB qu'il cite (impossibilité d'integer overflow).

#19 Re : -1 »  /* Topic des codeurs [8] */ » Le 26/08/2013, à 00:02

tshirtman
Réponses : 2274

Ok, c'est donc pas une histoire d’arithmétique en général, mais bien le cas particulier du pointeur NULL. Merci de l'explication… (oh et j'ai du mal a voir l'utilité de +0 et -0 en C++, mais j'imagine qu'il doit y en avoir ^^').

Mais là, en relisant ton explication, je me dis que j'aurais pas stocké la node elle même dans la structure, mais un pointeur, vers celle-ci, la comparaison avec NULL aurait alors du sens non? (le pense qu'on compare el->node pas &(el->node) du coup), Mais je ne comprends peut être pas bien l'intérêt global de la maneuvre, vu que tu dis que c'est pour éviter un pointer void*.

oh, et sinon, dans mes trucs bien plus haut niveau, je voulais dire que docopt c'est trop bien (c'est du python mais y'a un port ruby, lua et autres, j'imagine qu'un port C ferait des heureux, mais c'est surement une sacrée galère ^^). Au lieu de se casser la tête à définir le parsage des options, et a écrire l'usage, on écrit juste l'usage, et il le lit, et stock ce qui a été passé dans un dict, c'est juste génial, il fait les check et tout, et affiche l'usage si on demande un truc pas prévus.

Oh, et https://gist.github.com/tshirtman/6301662 (un exemple de rendu qui a fait souffler le mac a coté c'était pour tester par ce qu'il semble que j'ai un soucis driver sur ubuntu, ça crash quand je pousse trop le nombre de branches, avec des jolies messages comme ça dans dmesg).

#20 Re : -1 »  /* Topic des codeurs [8] */ » Le 14/09/2013, à 15:48

tshirtman
Réponses : 2274

@Rolhin et @Le Rouge: félicitations big_smile

Rolinh a écrit :

@Le Rouge: woaw, chapeau!

Sinon, Google vient de me contacter et me propose plusieurs postes à choix comme ingénieur software pour faire du Python ou du C++. Ça semble intéressant mais bon, je viens de commencer mon master...
C'est pas tshirtman qui avait eu droit à la même proposition?

J'ai été contacté pour un poste précis, assez chaud techniquement, et que ne convenait pas vraiment a mon profil (faut être bien plus calé en bas niveau que ce que je suis), j'avais clairement indiqué que ma spécialité, c'était le python, et j'ai eu des questions niveau C/système, >_> forcément, ça c'est moyennement bien passé.

amj a écrit :

Tu sais que dans les contrat de google, tout ce que tu fais appartient à google? Tu n'as alors plus le droit de publier sous licence libre. mad

http://video.rmll.info/videos/vis-ma-vi … iel-libre/ à 5min30

J'ai de sérieux doutes, à ma connaissances, ils ont 30% de leurs temps perso pour bosser sur leurs projets persos, ce qu'ils veulent, guido avait 50% au moins, et il est évident que python n'est pas devenu propriété de google. Quand à ce qu'ils font en dehors du boulot, je ne crois pas que google puisse revendiquer une quelconque paternité dessus, que ce soit en France ou aux US.

#21 Re : -1 »  /* Topic des codeurs [8] */ » Le 13/10/2013, à 14:34

tshirtman
Réponses : 2274
Rolinh a écrit :

details sur son interview

Attention cependant, leurs conditions stipulent que tu n'est pas sensé parler des questions que tu as eu en interview sur le web (tu peux en parler ailleurs, il me semble).

Mindiell a écrit :

Euh, Google, ça fait encore rêver ?

grave ^^

#22 Re : -1 »  /* Topic des codeurs [8] */ » Le 17/10/2013, à 18:16

tshirtman
Réponses : 2274

p*tain la galère de m*rde.

J'essayais d'utiliser gnuplot avec python pour représenter des événements sur un graphe temporel, gnuplot supporte de prendre des dates sur l'axe x, et les répartis correctement, il suffit de lui dire le format…

premier couac, avec Gnuplot.py, on peut pas lui passer n'importe quel format, vu qu'il caste un float… pas grave, je lui passe "%s" comme format (tout le monde semble faire ça), et passe le timestamp (certains auront déjà une idée de mon future problème), ça graph, mais mon graph a une drôle de gueule, les valeurs sautent d'un coup, au lieu de monter graduellement, je vérifie mon algo, (ayant des événements sous la seconde, je mergeais les valeurs, j'aurais pu me planter là dedans…), je finit par voir qu'en fait, je peux lui passer des secondes non entières, c'est cool, ça simplifie mon soucis, mais le graphe ne change pas de gueule, du coup, après pas mal de recherches infructueuses, je tente des trucs, au lieu de lui passer un vrai timestamp, je lui passe "%H%M%S", ça fait un pseudo timestamp, mais ça bousille le rendu de l'échelle (qui lui peut utiliser le vrai format de date, mais vu que le timestamp ne correspond plus à rien), et le graphe change de gueule, il gagne en fluidité, ça semble plus réaliste… hm, du coup, je me dis que je peux conserver des heures correctes sur le diagramme, en passant le timestamp dans un modulo (86400), si c'est les grandes valeurs qu'il aime pas… ça marche, les heures sont correctes, et le graphe a une encore meilleure gueule…

Et c'est seulement là que je comprends, par ce que ça fait longtemps que j'ai pas réfléchis au fonctionnement d'un float, plus la valeur est grande, plus la résolution prends un coût dans la gueule, forcément… >_<, vouloir faire des calculs sous la seconde dans un flottant, avec le timestamp actuel, forcément, ça parait une mauvaise idée.

Reste la question de pourquoi le wrapper python de gnuplot est aussi pourris >_>.

#23 Re : -1 »  FLARE (diablo like libre, en développement, anciennement OSARE) » Le 31/08/2013, à 16:47

tshirtman
Réponses : 54

Merci, j'ai ajouté build-essential du coup, g++ est dedans avec les autres choses de base pour compiler.

#24 Re : -1 »  Equivalent à Visual Studio » Le 30/06/2013, à 10:30

tshirtman
Réponses : 42

mais tu peux l'utiliser gratuitement aussi longtemps que tu le souhaite.