http://www.semicolon.co.za/mysql_tut...ng-select.html
Code:SELECT * FROM users WHERE email NOT REGEXP '^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]\.[a-zA-Z]{2,4}$'
http://www.semicolon.co.za/mysql_tut...ng-select.html
Code:SELECT * FROM users WHERE email NOT REGEXP '^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]\.[a-zA-Z]{2,4}$'
Encore un site qui ne supporte pas les + dans les addresses mails... C'est pourtant super pratique sous GMail pour faire des alias pour les douzemilles sites qui te demandent ton mail.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Et puis je pige pas l'intérêt de valider les adresses email.
Deux cas de figure :
- soit tu veux juste une adresse email pour une newsletter ou histoire de contacter le mec éventuellement, et là tu fais juste une validation en javascript avec un input type="email"
- soit tu veux une vraie adresse email qui sert à identifier le mec, et ce à ce moment tu envoies un email de confirmation pour être sûr que l'adresse soit valide
Le fait de faire un "DELETE FROM users WHERE email invalide" c'est vraiment très bizarre.
Rust fanboy
éventuellement pour faire un nettoyage de base de donnée, sans se fatiguer à envoyer des demandes de confirmations de mail?
Enfin je dis ça, c'est le seul cas que j'imagine...
Oui, perso je viens de faire un mailing, les adresses sont celles saisies par les agences dans notre logiciel métier (qui lui ne contrôle pas la validité), ça te permet de tout nettoyer rapidement sans te faire chier à passer par un script en php
Bon, je chie à la gueule de Github for Windows.
J'avais déjà chié à la gueule de TortoiseGit l'autre fois car il m'avait gentiment splitté mon code en deux. Et là c'est github for windows qui fait des siennes.
Déjà en utilisation normale régulièrement il ne dévérouille pas les fichiers, c'est à dire que le fichier .git/index.lock ne se renomme pas en .git/index comme il est censé le faire à la fin d'une opération.
Du coup tu utilises tranquillement le logiciel, et hop tout à coup tout fail, il ne trouve plus d'index, me met des messages d'erreur de partout, jusqu'à ce que je renomme manuellement le fichier.
Et encore index.lock c'est le problème le plus fréquent. Parfois c'est le même problème mais avec un fichier refs/machin/master.lock, et du coup il faut fouiller dans tous les répertoires pour voir si on trouve un fichier .lock à renommer.
Là il y a 1h je reçois un email "hey il y a un gros bug à tel endroit, correction urgente". Ni une ni deux je trouve le bug, je le corrige, je commit. Une typo dans un nom de variable lors d'une précédente modif, ça m'a pris 30 secondes.
Et en faisant mon commit... je tombe là dessus.
Obligé de supprimer mon working directory, de recloner depuis le serveur, de refaire la configuration locale, de recréer mon petit script qui lance le serveur PHP pour tester si ça marche. Tout ça pour un fix d'une ligne.
Rust fanboy
Installe Linux.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Rust fanboy
Non, sous windows la ligne de commande ça pue.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Git est fourni avec un shell linux à la cygwin, c'est à ça que je pensais.
D'ailleurs Github for windows propose un bouton permettant de l'ouvrir.
Rust fanboy
T'as de la completion automatique ? Ctrl+flèches te permet de sauter les mots sur la ligne de commande ?
Sinon ça rame quand même et c'est particulièrement laid. Et l'historique est contre nature.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
C'est exactement la même chose que si tu utilises git dans une console sous linux
Rust fanboy
Non, la console Linux et 100k fois plus puissante.
Rien que pour l'aspect visuel, chez moi mon bash a cette gueule:
Ce qui est quand même autre chose que
Et j'ai toutes les infos dont j'ai besoin directement dans le prompt (repo, branche courante, user, machine, dirty ou non).
Pour l'aspect interactivité je ne connais pas vraiment la console windows donc je n'ai pas envie de raconter n'importe quoi, mais je pense que c'est plus difficile à utiliser (sélection, copier coller, navigation dans la commande en cours, pipe etc)
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Ah ben après si tu tweak à mort ton bash, c'est sûr que ce sera pas pareil sous windows.
Rust fanboy
Github for windows ou Git for Windows ?
Parce que le deuxième je m'en suis servi pendant des mois sur des tas de projets et j'ai jamais eu aucun souci.
Bon après, j'ai tendance à me servir du GUI juste pour décider quels fichiers/lignes indexer, taper mon commentaire et faire le commit.
Pour ce qui est push/pull et autres, j'préfère la CLI (Git Bash qui tourne dans un wrapper style Console pour avoir un look pas trop affreux).
Rust fanboy
Salut !
J'aimerais savoir si quelqu'un s'y connaîtrais un peu en WebGL ?
J'ai un projet très basique à réaliser (affichage d'une texture avec un maillage pour éventuellement faire des déformations), seulement impossible d'y arriver...
Aucun support de cours, et sans ça difficile de comprendre les tutos dispo (j'essaye avec learning webgl), mais avec le délai que j'ai c'est pas trop possible d'y passer des années...
En gros je pige pas la logique de base de création des coordonnées des textures, des positions et des index, puis leur affichage...
Je peux envoyer le code actuel et donner plus d'infos si certains veulent bien aider.
En WebGL j'y connais pas grand chose, mais en OpenGL je me débrouille.
Déjà au niveau des coordonnées des triangles :
- tu indiques toujours les coordonnées logiques à OpenGL, et c'est lui qui transforme ça en coordonnées physiques (pixels)
- le milieu de ton écran est toujours aux coordonnées (0,0), en bas à gauche c'est (-1,-1) et en haut à droite c'est (1,1) ; c'est un simple repère orthonormé
- tu peux multiplier tes coordonnées par une matrice dans ton vertex shader afin de les placer dans la scène, c'est en donnant la même matrice à tous les objets de la scène qu'on obtient l'illusion de perspective
Pour les textures :
- le bas-gauche de ta texture est aux coordonnées (0,0) et le haut-droite aux coordonnées (1,1) ; les débutants ont tendance à se tromper et pensent que le (0,0) est en haut à gauche
- l'idée c'est d'associer à chaque vertex les coordonnées de texture correspondantes ; par exemple ton vertex en bas à gauche de l'écran tu lui assignes les coordonnées de texture (0,0) et celui en haut à droite les cordonnées (1,1)
- ensuite dans ton fragment shader tu samples la texture (sampler = échantillonner, tu lis une couleur quoi) en donnant les coordonnées de texture correspondante
Les indices (pluriel de index) c'est tout simplement un moyen de réutiliser plusieurs fois le même vertex dans plusieurs triangles différents.
Au lieu de donner des triangles avec les informations des trois vertices (pluriel de vertex), tu créé au préalable un tableau de vertices, et ensuite tu donnes des triangles avec les numéros des vertices dans le tableau.
Rust fanboy
Heu , ça dépend de ton glViewport et glDepthRange, et ensuite OpenGL mappe tes coordonnées dans l'espace de ton Viewport vers des coordonnées de fenêtre dont l'origine bas-gauche est à 0,0 et le haut-droit à 1,1.
Sinon Nacodaco envoie ton code, c'est toujours plus simple pour discuter.
"Dieu est mort" · "Si le téléchargement c’est du vol, Linux c’est de la prostitution."
Messieurs les barbus, un des vôtres a besoin de vous.
Voilà mon soucis : j'ai écopé d'un vieux webservice en .Net 2008 avec une surcouche REST, celle rajoutée par Microsoft à l'arrache et où des cowboys ont recodé des trucs métier dégueulasses dessus.
On est partit sur sur 2010 plus propre et mieux fait, mais pour le moment, la prod est encore sous l'ancienne version.
On a un nouveau client sur ce webservice qui est le seul à avoir un soucis pour discuter avec.
Apparemment, le content-type du header est codé en dur et n'accepte que "application/xml" chez nous.
Sur le principe, c'est pourri mais ça tourne depuis 4 ans comme ça (if it ain't broken ...).
D'après ce nouveau client, ce content-type implique qu'on doit obligatoirement envoyer un fichier xml en binaire... Chose qui n'avait jamais été faite, donc testée et ne marche pas, évidemment.
Apparemment ils ont une boîte noire pour leurs appels externes et ils ne peuvent pas bidouiller pour nous envoyer du xml dans un POST en "content-type: application/xml".
Alors déjà, j'aimerai savoir si c'est logique comme argumentaire (oui parce que je fais du web depuis un paquet de temps, mais franchement les headers, ça fait des années que je m'en contrefous). Et ensuite, si ça ne l'est pas, trouver un contre argumentaire.
Et si c'est nous qu'on a un truc pourri, pourquoi c'est pas clair sur le W3C ?!
Merci pour les réponses rapides
Donc les indices c'est juste de l'optimisation ? Si ce n'est pas obligatoire vaut mieux que je me concentre sur l'essentiel (que j'ai déjà du mal à aborder).
Voici le dossier :
https://docs.google.com/folder/d/0B8...NXNU1kMEU/edit
Actuellement la texture est répétée à chaque case (au lieu d'être affichée une seule fois).
Quand le mec dit "fichier xml en binaire", soit il parle du nouveau format en cours d'élaboration, soit il essaye d'envoyer un fichier dans un autre format et bidouille pour que ce soit du XML (et à ce moment "xml en binaire" est pas un mot très approprié), soit il raconte de la merde (c'est le moins probable des trois cela dit).
Faudrait voir concrètement ce qu'il essaye d'envoyer/recevoir, mais en principe si ton service est bien designé il n'y a pas de raison pour qu'il bloque à cause d'une histoire de XML. Effectivement s'il veut envoyer une image ou un pdf par exemple, le format XML n'est pas du tout approprié, et à ce moment là le problème est de votre côté. Vous pouvez soit corriger ça, soit leur demander d'envoyer le contenu en base64 par exemple.
Si le service demande légitimement du XML, et que eux sont trop fainéant pour faire une conversion, ben vous pouvez soir faire la modif de votre côté pour accepter leur format, soit les envoyer chier.
Bref, faut voir s'il est légitime que vous demandiez du XML.
Rust fanboy
On travaille uniquement sur du XML vu qu'on échange des données typées (string, datetime, ...) et qu'on fait du croisement d'informations, pour faire simple. Donc oui, XML est légitime. Et puis le WCF derrière prends un XDocument en entrée...
Le gars soutenait mordicus qu'avec le content type qu'on demandait, fallait envoyer un fichier xml. Et ouais, il parlait de binaire, mais je vois pas pourquoi.
Ce qui m'emmerde c'est sa définition d' application/xml. D'après lui c'est nous qui avons mal construit le WS (bon en soit c'est pas totalement faux). Mais je ne vois pas pourquoi avec ce content-type on est obligé de passer un fichier.
Ni Fiddler ni aucun autre soft du genre ne m'a jamais emmerdé là dessus.
D'ailleurs j'ai fait des tests pour voir et quand je balance un fichier xml, il me place le content type en text/xml...
Ton rectangle il s'affiche au centre de l'écran ou en haut à droite ?
Parce que tu fais des trucs très bizarres là.
Selon ta réponse soit je vais rejeter un coup d'oeil dans le standard opengl, soit je te donne la solution.
---------- Post added at 16h30 ---------- Previous post was at 16h27 ----------
Ce que le mec veut peut être dire, c'est qu'il utilise un formulaire HTML pour vous envoyer les trucs.
Et effectivement avec un formulaire HTML tu ne peux pas envoyer directement de XML (à moins d'écrire trois tonnes de javascript).
L'autre problème c'est que tu ne peux envoyer qu'en méthode GET ou POST, et pas en PUT par exemple. Je sais pas si vous acceptez le POST ou seulement le PUT.
C'est l'un des problèmes du REST actuellement, c'est qu'il n'est pas trop compatible avec le HTML.
Rust fanboy
Vu l'archi, s'ils passent par un formulaire html, ils sont suicidaires.
Tout est en workflow, y a pas d'action humaine entre les 2 systèmes. On ne travaille qu'avec du POST dans nos tests. Le PUT est pas trop aimé par IIS d'après ce que j'ai vu, mais je ne vois pas pourquoi il ne veulent pas nous faire de POST normal avec du xml dedans.
Mais vu ce que tu me dis, ok, y a un soucis soit dans leur définition en interne soit dans leur implémentation...
Vu que tu réponds pas...
En fait t'as créé deux vertex buffers différents (squareVertexMachinBuffer et squareVertexTrucBuffer).
Le problème c'est que tu ne peux en binder qu'un seul à la fois. C'est à dire que quand tu fais "bindBuffer" à l'intérieur de ton for dans drawScene(), en fait tu unbind le positionBuffer.
Effectivement tu as appelé vertexBindAttribBuffer alors que le positionBuffer était bindé, mais ça ne veut pas dire qu'opengl va lire dans le positionBuffer. Il va lire dans le buffer bindé au moment du dessin, c'est à dire le textureCoords. Du coup OpenGL lit tes coordonnées de texture et croît que ce sont des coordonnées de position.
Il faut donc que tu fusionnes tes deux buffers en un seul.
L'autre problème c'est que tu dessines un "objet" par case.
Il faut que tu créé un seul grand vertex buffer pour chaque objet de la scène, et en l'occurence ton cadrillage c'est un seul objet.
Tu mets dans ce vertex buffer la position et les coordonnées de texture de chaque point (c'est à dire que tu auras GRID_SIZE*GRID_SIZE éléments).
Ensuite dans drawScene tu le bind, tu appelles deux fois vertexAttribPointer, et tu draw une seule fois.
Rust fanboy