42 private links
Comment créer un index facilement avec EF CodeFirst
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)
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é, venant de Rhinomocks
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.
conventions de nommage des différentes couches
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.