J'avais oublié à quel point ça pouvait sauver la vie de voir passer les requêtes en temps réel (coucou le souci de dates au format MM-DD-YYYY)
DbFunctions.TruncateTime(p.Period) == DbFunctions.TruncateTime(period));
Egalement, quand on envoie une date à un API Controller, privilégier un format ISO : "yyyy-MM-dd HH:mm:ss"
Update-Database -Script -SourceMigration: Previous_migration -TargetMigration: Current_migration
Et pour le down :
Update-Database -Script -TargetMigration: Previous_migration
Et pour le script complet :
Update-Database -Script -SourceMigration:0
Côté serveur : git push --delete origin branchname
En local : git branch -d branchname
Ensuite : git remote prune origin
Et côté serveur... pour toutes les branches mergées : git branch -r --merged | grep -v master | sed 's/origin\///' | xargs -n 1 git push --delete origin
Côté local : git branch --merged | egrep -v "(^*|master|dev)" | xargs git branch -d
Enfin : git remote prune origin
Le petit outil qui permet de fixer les problèmes de scaling sur Windows 10
(Car oui, à mon taf ils ont rien trouvé de mieux que de mettre des écrans 4k sur les laptops 15")
Une développeuse qui s'est amusée à soumettre ses contributions à GnuPG en alternant des pseudos masculins et féminins.
Bilan ?
80% de ses pull requests avec des pseudos masculins étaient acceptées.
100% des pull requests avec des pseudos féminins étaient refusées.
Sexisme ambiant, tout ça.
Note perso : comment détecter la triche dans un logiciel de test en ligne ?
Détecter un copier/coller (évidemment)
Détecter quand la page n'est plus en focus <A href="https://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active" rel="nofollow">https://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-not-currently-active</A>
Ce qui signifierait probablement de la triche, une personne qui va checker un autre document ou faire une recherche google. (ou alors qui va faire autre chose pendant le test)
Détecter une pause (plus rien qui ne bouge pendant un certain temps, avec derrière un pic de saisie de contenu)
Limiter le temps (15/20 secondes par question de QCM, 1 minute max par question ouverte) pour rendre quasi impossible la triche
Si c'est un logiciel Windows, demander à l'utilisateur de n'avoir que le logiciel d'ouvert, et surveiller si d'autres process type firefox/chrome sont lancés. Ou encore prévenir l'utilisateur que son écran sera enregistré pendant toute la durée du test.
Prévenir l'utilisateur au moment du départ que le test est surveillé (copier/coller, etc.) et que la moindre activité suspecte sera éliminatoire (il vaut mieux avoir 9/20 que 0/20 non ?)
Utiliser la webcam et la conjuguer à la détection d'activité. Quelqu'un qui regarde ailleurs pendant le test...
Comment faire ça sans que la personne puisse le bloquer via le JS ? Envoyer toutes les X secondes la position du curseur et le texte saisi au serveur, qui lui calculera les stats (et pas un JS qui est modifiable par l'utilisateur).
Ou encore obfusquer le JS. Mettre un timer dans tous les cas. Générer un JS différent à chaque fois
EDIT : on m'a remonté que la plupart de ces moyens étaient contournables via une VM. C'est aussi le cas en modifiant le JS, en forgeant la page, en faisant le test à deux, etc. Il y a toujours des moyens de tricher, et un test en ligne n'est pas censé être éliminatoire, mais doit juste servir à donner une idée, dans l'idéal :)
Assez d'accord, le nommage "Mock" pour tout n'est pas génial. Après je suis pas fan de la syntaxe de Nsubstitute : on peut vite confondre un stub et l'appel réel...
De côté :) Il est temps d'arrêter d'utiliser les sessions :D
Un article génial sur l'optimisation d'un morceau de code : comment passer de 7.5gb de ram pour parser un fichier... à 32kb :D
Le rêve de tout dev ;)
Un très bon post sur les problématiques d'ORM et de l'include / N+1.
Ca rejoint ce que j'avais pu découvrir à force de tests : se méfier de l'include, surtout si on manipule de grosses collections OU des clefs non indexées.
Bon petit article sur le style des boutons et des liens
Nether. Rewrite. A. Big. Software. From. Scratch.
(even though I would be the first one to say "let's restart it from scratch")
2 très bons points :
1) il est toujours plus facile d'écrire du code, que de le relire, d'où cette volonté constante de réécrire le code
2) en réécrivant from scratch, on perdra énormément de choses. Des bugs rarissimes qui étaient gérés, des cas chelous qui étaient bloqués, etc.
En bref : réécrire from scratch est souvent une très mauvaise idée. Après, pour moi, il y a quelques raisons qui peuvent justifier ça :
logiciel rédigé dans un langage mourant, qui n'est/ne sera bientôt plus maintenu
impossibilité de migrer par morceaux
grosse refonte complète du coeur du métier (ce qui prendrait plus de temps à faire évoluer qu'à recoder)
En dehors de ces cas là, il faut garder l'existant et le migrer petit à petit. Prendre un morceau, le mettre à jour, le faire évoluer, etc.
Après le souci est aussi autre : pour un dev, un projet from scratch sera toujours 1000x plus cool qu'un projet d'évolution.
Cela pour diverses raisons :
- turnover trop élevé dans l'informatique, personne ne veut passer à faire évoluer un vieux module pendant 3 ans alors qu'il sait pertinemment qu'il ne restera pas 3 ans dans la boite
- quand la boite a tendance à faire passer les profits court-terme avant la qualité, ben tu sais que les refontes ne marcheront pas car en permanence on va te demander de développer de nouveaux trucs. A quoi bon améliorer l'isolation d'une maison si le proprio passe son temps à faire construire de nouvelles pièces à la va-vite autour de la maison ?
C'est pas simple. Mais c'est lié à une incapacité à voir à long terme, à recruter des développeurs qu'on veut garder non pas 3/5 ans mais 20 ans, et à décider d'apprendre à dire non, et de faire passer la qualité avant les contrats.
Seulement à ces conditions ça peut marcher.
Très bonne explication sur les différences entre la version community et les autres versions de Visual Studio.
Si y'a deux qualités qu'on peut reconnaître à Microsoft :
Visual Studio est un des meilleurs IDE actuels, ils ont énormément tafé dessus et ça se ressent
Microsoft est cool à le rendre totalement gratuit pour les indépendants et petites entreprises :)
Après ça reste Microsoft, mais je trouve ça cool.
Lien et réflexion intéressante sur le flat design.
Personnellement... je ne suis pas fan pour une bonne raison : on perd énormément en lisibilité. Oui, une fois habitué, ça passe, mais on perd en lisibilité, qu'on le veuille ou non.
On perd les formes des boutons, tout a la même forme. On perd les contours des boutons tant qu'on n'est pas dessus.
Exemple : <A href="http://img15.hostingpics.net/pics/913576Flat1.png" rel="nofollow">http://img15.hostingpics.net/pics/913576Flat1.png</A>
"Because flat out, people prefer having visual cues all over the places(along with some eye candies) to some ridiculous flat fetish of Microsoft's. Even Google is learning by adding drop shadows to give visual cues. "
"The lack of drop shadows and subtle gradients are my biggest beef with Metro. It's one the reasons you have ALL CAPS menus in Office 2013, as they're using it as a separator from other elements."
L'almost flat design serait une solution. J'avais photoshoppé un exemple en utilisant iTunes qui, même si c'est un logiciel de merde, a un design simple à comprendre et à appréhender. En haut en mode "flat", en bas en mode "almost". <A href="http://img15.hostingpics.net/pics/694268flatvsamost.jpg" rel="nofollow">http://img15.hostingpics.net/pics/694268flatvsamost.jpg</A>
Sur l'écran du haut, vous sauriez me dire ce qui est un bouton ? Un sélecteur ? Un filtre ? Pas forcément.
Du coup ça rend encore plus compliqué l'accès à l'informatique. Pourquoi ? Faire des économies en designers ?
"I personally think its very effective on the phone, where it was tailored. It can surely be extended to the desktop as well. Unfortunately, it seems that much of the utility was lost in the transition to the desktop"
J'en sais rien personnellement. Mais je n'aime vraiment pas le flat design à la Microsoft, car Microsoft va trop loin. Le design de Gmail est, à contrario, très clair en "almost" flat. De très légères ombres, de très légers contours, des boutons facilements identifiables.
"Mobile First Design, Taken too Literally."
Je pense que c'est ça. Microsoft a concu Windows 10 en "mobile first". Sauf que mobile-first signifie souvent que le résultat n'est PAS fait pour la souris. Et du coup on s'aliène plus de la moitié des utilisateurs. Je l'ai énormément vu avec tous mes derniers projets : penser un projet en mobile-first va faire perdre des utilisateurs souris.
"The entire point of the article is that the "almost flat" designs are excellent as they don't go the extreme MS has in promoting minimalism.
Metro is not an "Almost Flat", Metro is The Church Of Flatology."
En bref, Microsoft continue de tenir le cap, même si devant eux ils ont un gros iceberg...
Même Apple et Google on décidé de ne pas faire du 100% flat, car ça leur ferait perdre des utilisateurs. Microsoft s'en fiche, ils installent leur OS de force...
strftime('%d - %m - %Y ', datetime(dateField, 'unixepoch'))