4ème
Ca fait assez longtemps que je l'ai.
Rust fanboy
Il n'impriment que les chapitres qui sont sur le chemin critique et ils offloadent le reste en PDF sur un CD, c'est une approche quantitative de l'optimisation revenus/coût.
Ou bien c'est un bouquin d'architecture hétérogène.
http://shop.oreilly.com/product/9780596805531.do
Le support est en pulpe de bois compressée, mais ça vaut tous les sites web possibles.
Tiens j'ai un p'tit problème avec Postgres.
J'essaye de créer une fonction de ce genre :
Pour renvoyer une table, on est censé utiliser soit RETURN QUERY (qui renvoie tout d'un coup) soit RETURN NEXT (qui rajoute une ligne dans la valeur de retour).Code:CREATE OR REPLACE FUNCTION "getPeriods"(IN id INTEGER, IN startDate DATE, IN endDate DATE) RETURNS TABLE("periodStart" DATE, "periodEnd" DATE, status "Status")
J'ai ça un peu plus loin :
Sauf que Postgres me dit que "ERROR: RETURN NEXT cannot have a parameter in function with OUT parameters".Code:iterator := startDate; WHILE iterator < endDate LOOP RETURN NEXT SELECT iterator, iterator + INTERVAL '1 month', CAST('draft' AS "Status"); iterator := iterator + INTERVAL '1 month'; END LOOP;
Si je mets que des constantes dans mon RETURN (par exemple "RETURN NEXT SELECT '2', '3', 'bonjour'"), là ça marche. Mais pas si je mets des variables dedans, ce qui casse quand même pas mal l'intérêt du truc.
Mais de quels OUT parameters il parle là ?
J'ai beau chercher sur le net, tout ce que je trouve ce sont des mecs qui ont cette erreur parce qu'ils ont effectivement mis des OUT parameters. Mais moi je n'en ai pas
J'ai essayé de remplacer le type de retour par "SETOF RECORD", mais là j'arrive plus à appeller la fonction. Et puis je voudrais que mon type de retour soit défini correctement.
Dernière modification par Tomaka17 ; 04/12/2012 à 09h25. Motif: typo
Rust fanboy
Bon, j'pense que je m'arrangerai pour chopper le O'Reilly. Merci pour les réponses.
Okay j'ai trouvé.
Il faut faire comme ça:
Merci l'article ultra-technique sur les dessous de Postgresql qui a montré ça en exemple.Code:"periodStart" := blabla; "periodEnd" := blabla; status := blabla; RETURN NEXT;
Rust fanboy
Merci pour les réfs !
Je bloque sur la fin d'un exo ou je dois passer 3391 en base -5 en utilisant la forme de Horner. Donc j'ai fais ça :
Sauf qu'à la dernière ligne le -1 ça va pas du tout. Et j'essaie plusieurs trucs mais j'arrive pas à me débloquer. Je suis sur que ça doit encore être un truc tout con.Code:3391 = 1 - 5 x (-678) = 1 - 5 x (2 - 5 x 136) = 1 - 5 x (2 - 5 x (1 - 5 x (-27))) = 1 - 5 x (2 - 5 x (1 - 5 x (3 - 5 x 6))) = 1 - 5 x (2 - 5 x (1 - 5 x (3 - 5 x (1 - 5 x (-1)))))
C'est quoi le problème?Code:3391 = -5⁰ * 1 + -5¹ * -678 = -5⁰ * 1 + -5¹ * 2 + -5² * 136 = -5⁰ * 1 + -5¹ * 2 + -5² * 1 + -5³ * -27 = -5⁰ * 1 + -5¹ * 2 + -5² * 1 + -5³ * 3 + -5⁴ * 6 = -5⁰ * 1 + -5¹ * 2 + -5² * 1 + -5³ * 3 + -5⁴ * 1 + -5⁵ * -1 = -5⁰ * 1 + -5¹ * 2 + -5² * 1 + -5³ * 3 + -5⁴ * 1 + -5⁵ * 4 + -5⁶ * 1
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Mon quotient étant inférieur à mon diviseur, j'ai pensé que c'était terminé !
-1 > -5.
Après, une base négative avec des chiffres positifs, c'est pas vraiment intuitif.
La base 10 en notation redondante avec des chiffres de -5 à +5 est bien plus classe.
Bin d'ailleurs, 24 c'est 1.1.4 en base -5 ? Marrant parce que 25 du coup c'est 1.0.0
---------- Post added at 10h23 ---------- Previous post was at 10h16 ----------
Sinon moi j'ai passé un moment à configurer mes projets open source pour Travis-CI. Ils ont ajouté des features pour compiler des projets C++ et ça déchire grave.
Le tout est gratuit, super facile à intégrer à des repository Github, et à configurer avec la possibilité de faire des matrices de build sur plusieurs compilos, on peut installer les dépendances avant via apt-get. CMake est supporté par défaut, et pour finir l'interface est super sexy et t'as un petit badge discret à ajouter au README sur Github indiquant le status du dernier build sur le projet.
Et pour ceux qui font autre chose, c'est évidemment supporté aussi (C, C++, Clojure, Erlang, Go, Groovy, Haskell, Java, JavaScript / Node.js, Perl, PHP, Python, Ruby, Scala).
En parallèle je me suis fait une machine de build privée avec buildbot, l'objectif est un peu redondant mais je compte me faire des builds automatiques de paquets .deb et de les publier ensuite sur un repository perso. Un peu à la launchpad mais pas juste ciblé Ubuntu.
Et ça compile ailleurs que chez moi, c'est trop bien
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
-59,75 minutes c'était il y a 1 heure moins 1 moins 45 secondes. -60 minutes c'était il y a 1 heure 0:0.
(sauf erreur et à une inversion générale de signes près)
Merci ! Ça m'apprendra à bosser encore après minuit, je fais n'importe quoi...
Ouais, l'analogie va pas bien, les heures c'est juste des chiffres positifs/négatifs avec une base positive.
Je ne vois pas trop d'exemple avec une base négative (où les coefficients des puissances paires comptent en positif et ceux des puissances impaires comptent en négatif).
Peut-être un système monétaire où tu rends la monnaie plusieurs fois : je dois te payer 24€, alors je te donne 1 billet de 25€, tu me rend 1 billet de 5€, puis je complète avec 4 pièces d'1€. Pour simplifier la distribution de billets, on ne remplit les distributeurs qu'avec des billets de 1, 25, 625… et les tiroirs-caisses avec des billets de 5, 125, 3125…
Et après quand t'as récupéré un billet de 5€, t'as le droit de l'utiliser que pour rendre la monnaie si c'est toi qui vend quelque chose. Simple
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
On devrait faire un système monétaire en base -7 ou -13 plutôt, c'est encore plus drôle pour les multiples.
Rust fanboy
Oui, c'est bien plus simple, parce qu'il n'y a plus qu'un seul moyen de rendre la monnaie (bien sûr, il est strictement interdit d'utiliser plus de 4 billets identiques à la fois). Du coup, si tu connais la valeur de ce que tu vas vendre et acheter à l'avance, tu peux préparer toute ta monnaie à l'avance et savoir celle que tu vas recevoir.
Après je suis d'accord que les systèmes de numération redondants à bases multiples c'est encore mieux, mais bon, l'exercice était comme ça…
Et comment t'empêches les gens de payer un truc à 2 € avec quatre pièces de 0.50 ? Des billets de 0.05€, 1.25€, 31.25€, 781.25€, etc. ?
Ou alors tu interdis les prix non-entiers ?
EDIT : en fait j'en sais rien mais j'imagine qu'en bourse ou quand les volumes sont importantes, les prix font beaucoup de décimales
Rust fanboy
Ben non, les vendeurs ont des pièces de 0,2€, 0,008€… et les acheteurs on des pièces de 0,04€, .0016€… Toujours des puissances (négatives) de -5.
Pour les décimales, c'est pas un problème en pratique… Tu as des pays où les prix sont au centime près mais où la pièce la plus petite vaut 5 centimes.
http://office.microsoft.com/fr-fr/ex...005199291.aspx
- Dans une cellule Excel (2003), on peut mettre 32 767 caractères
- La largeur d'une colonne est de 255 caractères, mais on est censé en avoir rien à foutre vu qu'on peut mettre 32 767 caractères.
Sauf que quand on écrit dans un fichier Excel avec Oledb, on est limité à 255 caractères
Il m'a fallu une heure pour comprendre la merde ²
Hum, j'ai une petite coquille là.
Il me faut calculer la date de pâques dans postgre.
Je suis tranquillement allé sur wikipedia, et j'ai copié collé ce code python : http://en.wikipedia.org/wiki/Computus#Software
Y a pas d'erreur, mais ça me renvoie de mauvaises datesCode:CREATE OR REPLACE FUNCTION "getEasterDay"(year INTEGER) RETURNS DATE AS $$ DECLARE a INTEGER; b INTEGER; c INTEGER; d INTEGER; e INTEGER; dDay INTEGER; dMonth INTEGER; BEGIN a = year % 19; b = year >> 2; c = b / 25 + 1; d = (c * 3) >> 2; e = ((a * 19) - ((c * 8 + 5) / 25) + d + 15) % 30; e = e + (29578 - a - e * 32) >> 10; e = e - ((year % 7) + b - d + e + 2) % 7; d = e >> 5; dDay = e - d * 31; dMonth = d + 3; RETURN CAST(CONCAT(year, '-', dMonth, '-', dDay) AS DATE); END; $$ LANGUAGE plpgsql IMMUTABLE;
J'ai fait une connerie ou bien c'est l'algo qui est fumeux ?
EDIT : ok j'ai trouvé, manquait les parenthèses là où il y a le += et -=
En fait c'est génial les forums, tu passes 20mn à chercher l'erreur, et au moment où tu post tu trouves.
Rust fanboy