je suis développeur. Je développe quasiment uniquement avec des langages qui subissent une phase de compilation (C, C++, Java, C# ).
Comme la dépêche mentionne la politique de typage de Go, j'en profite pour poser quelques questions aux utilisateurs de python et ruby au sujet de cette fameuse politique de typage.
D'après ce que j'ai lu, python et ruby sont tout les deux très expressifs : on fait beaucoup avec peu de code. Python et ruby ne m'avertissent qu'au moment de l'exécution de certaines erreurs que je peux avoir commis :
- mauvais nom de variable : afficher (personne.DatttteDeNaissante )
- mauvais type : afficher( divise(entier1, chaine2) )
Du coup, si j'ai bien compris la philosophie, je dois écrire des tests pour tout. Y compris ce qui ne peut échouer que parce que les langages ne m'avertissent de certaines erreurs qu'à l'exécution.
( jusqu'ici j'ai bon ? ).
De mon point de vue, je perds un peu l'avantage de l'expressivité puisque même pour du code trivial, je dois écrire un test si je veux m'assurer que le code est bon.
Alors au quotidien, comment vous faites ? Vous écrivez des tests pour avoir 100% de couverture de votre code ? Vous livrez tel quel et vous corrigez si qqn tombe sur un bug idiot ? Il y'a des outils qui font certaines vérifications ? Eclairez moi.
Tant qu'à s'attaquer à la refonte d'un site gouv.fr, je propose de commencer par legifrance. Je propose d'adopter une approche "une loi est un patch". De cette façon on visualisera rapidement les modifications/ajouts/suppressions effectuées par une loi sur des articles déjà existants.
C'etait pour donner suite aux propos de Torvalds :
"Je peux parfois blaguer à propos de Microsoft, mais en même temps, je pense que la haine de Microsoft est une maladie. Je crois au développement ouvert, et cela ne signifie pas seulement ouvrir le code source, mais également ne pas exclure de gens ou d'entreprises.
Il y a des « extrémistes » dans le monde du logiciel libre, et c'est une des raisons majeures pour lesquelles je n'appelle plus ce que je fais « logiciel libre ». Je ne veux pas être associé à des gens qui fonctionnent en termes d'exclusion et de haine."
C'est pas facile d'être un citoyen responsable ; Si les choix, c'est :
- un vélo en mauvais état, sous la flotte avec le risque de se faire écraser et de se faire insulter/menacer
- des transports en communs, bondés, pas surs, avec des fréquences pas toujours pratiques et des jours de grèves plus fréquents que les jours de pannes de la pire des bagnoles
- une voiture climatisée, sure, silencieuse, confortable, toujours à disposition
>Euh ... J'ai ici au taf un serveur avec 150 To de base au cul, est-ce à dire que je dois lui donner 150 To de RAM ?
Est-ce à dire que tu penses que faire tourner ton serveur avec 256 Mo de RAM n'aura pas d'impact sur ses performances ;-) ?
Le cas ici est simple : il est possible de faire tenir l'ensemble des données en ram. C'est pas difficile d'ajouter 2 Go. Au pire l'entreprise a perdu 40 €. Au mieux y'a tout un tas de select qui ne seront plus dépendant des disques durs.
Une base de 2 GO qui est a peu près uniformément lue ne tient dans 2 Go de RAM. Ca veut dire que même des select consomment des IO alors que si la base tenait entièrement en RAM, beaucoup de select ne consommeraient plus d'IO.
Le 2eme point, c'est qu'une table de 600 Mo, c'est couteux. Ca fait des indexs importants à parcourir et à rééquilibrer en cas d'insert. C'est ptet le moment de penser à un partitionnement applicatif.
Petite remarque à part : un bi-xeon avec 2 Go de ram, c'est comme une porsche avec des pneux de twingo : ça m'étonnerait pas que le moteur soit sous exploité ;-)
Et pour savoir ce qu'il faut pour dans 3 ans, il serait interressant de connaitre le rythme de croissance de la base ? 1 Mo par mois ou 300 Mo par mois ?
Posté par snt .
En réponse au journal GCC lent.
Évalué à 10.
Il faut d'abord déterminer l'origine du problème :
- Est-ce que le CPU tourne à fond pendant la compil et le link ? Si c'est pas le cas, ça signifie que le proc attend des données. Dans ce cas il faut tester le disque. Un petit benchmark sur les deux machines peut te donner des infos intérressantes. Si il y'a un disque 5 fois plus rapide que l'autre, ça peut jouer fortement sur le temps total ( il n'y a pas si longtemps j'ai vu une base oracle sur un serveur linux plus que costaud se trainer. Il y avait une version pourrie de drivers raid qui faisait se trainer les I/O à 2 MO/s ! ).
Comme je suis résolument optimiste et que je me considère comme un modéré ( je suis un linuxien quand je le peux mais je vis en faisant du visual studio et ça ne me déplait pas non plus ), je vous livre ma conclusion ( parce qu'il est important d'avoir un avis supplémentaire ... ).
- Beaucoup de postes/articles sur ce sujet sont plus ou moins partisans : il ne faut pas oublier qu'IBM est une entreprise commerciale au même titre que Microsoft. J'essaye de lire chaque intervention en oubliant qui en est l'auteur. Pour limiter l'impact de mes préjugés et me concentrer sur le propos.
- La transparence a beaucoup progressé : les specs sont dispos gratuitement et perso j'aime bien la communication de Microsoft qui explique les choix qui ont été fait et pourquoi ( les développeurs qui ont déjà eu à implémenter des standards savent qu'on trouve toujours que les specs ne sont jamais assez précises. Dire ce qui n'est pas bon permet d'améliorer la version suivante ). De plus j'aime assez l'orientation précisée : dire quelles sont les priorités du développement et qu'une de ces priorités soit l'absence de mauvaise suprise : soit ça marche comme il faut, soit ça ne marche pas mais on ne prend pas la risque d'un choix qui pourrait laisser croire à l'utilisateur que ça a marché alors que les résultats sont faux.
- Le développement est un processus itératif : ceux qui s'attendent à ce qu'une implémentation soit parfaite à la 1ere version ne sont probablement pas développeurs. Il est donc encore un peu tôt pour prêter des intentions malsaines aux différents camps alors le support d'ODF est encore récente notamment chez Microsoft.
- Selon a peu près tout le monde ODF 1.2 comblera pas mal de lacunes. Je comprends l'impatience mais je trouve que dans l'ensemble les choses bougent plutot dans le bon sens.
- Qualifier son interlocuteur de "fanboy" décrédibilise plutôt l'auteur
- Moinsser sur linuxfr dès qu'on est pas d'accord n'est pas la plus belle preuve d'ouverture d'esprit
C'est écrit dans les specs [1] ou il faut juste lancer quelques softs, sauvegarder et comparer les résultats pour savoir quoi écrire ?
( et aussi à titre personnel je cherche la liste des fonctions et opérateurs utilisables dans les dites formules, alors si qqn à déjà épluché le truc et a les numéros de pages sous la main, bah je suis preneur ... )
Un navigateur web, c'est comme une machine virtuelle :
- exécution dans un environnement dont l'accès aux ressources est contrôlé
- application non native de plus en plus souvent compilée à la volée
- des bibliothèques de base multiplateforme
Ce qui est rigolo, c'est que c'est pas la meilleure des machines virtuelles :
- Les implémentations sont pour le moins hétérogènes ( et j'essaye de rester diplomate )
- Un seul langage est supporté
- Les bibliothèques de base son plutôt pauvres et le tout manque cruellement de consistance
Bref, les standards de demain, c'est quand même moyennement funky.
Il faut s'extasier devant une appli qui pour faire tourner 2 vidéos demande un dual core et l'installation d'une JVM de 10 Mo encore en béta ? A coté de tout ça Java parait séduisant.
>Bruce Perens considère le modèle de développement libre tellement supérieur que la GPL deviendrait inutile).
>Le meilleur exemple est la difficulté de sortir Vista, par rapport à la vitesse de mise à jour de Linux.
Il est supérieur selon quels critères ? En tant que développeur, c'est séduisant, mais le chef d'entreprise se pose quelles questions ?
- windows et office sont-ils plus répandus que linux et oo ?
- l'iphone est-il plus vendu que l'android ?
- gmail est-il plus utilisé que roundcube ?
Il faut préciser sinon on est vite discrédité.
>Linux fédère des milliers de développeurs, sans avoir des centaines de chef de projet, de réunions de suivi ou autre.
Si tu parles du noyau, il y'a une hiérarchie et des sous-systèmes. Des réunions aussi ( en ce moment, y'a le Linux Storage and Filesystem Workshop. J'ai hate de lire les comptes-rendu ).
Sinon il y'a une multitude de projets avec certains membres plus influents que d'autres.
Ce qui serait intéressant aussi, c'est un cours de sensibilisation aux licences et au droit d'auteur en général :
- en tant que développeur, que dois-je regarder avant d'utiliser du code que je n'ai pas écrit ? Quelle peuvent-etre les conséquences sur mon propre code ?
- en tant qu'utilisateur/acheteur, que dois-je regarder avant d'obtenir/utiliser/acheter un logiciel ? Quelles sont les conséquences ?
- en tant qu'employé quels sont les droits que j'ai sur le code que j'écrit ?
Ces problèmes ne sont pas liés qu'aux logiciels libres. Quand tu utilises une bibliothèque tierce, il est bon de se poser des questions avant de l'intégrer que ça soit une bibliothèque libre ( impact sur mon code ? ) ou propriétaire ( royalties ? ).
# Typage statique/dynamique
Posté par snt . En réponse à la dépêche Go : Un nouveau langage chez Google. Évalué à 5.
je suis développeur. Je développe quasiment uniquement avec des langages qui subissent une phase de compilation (C, C++, Java, C# ).
Comme la dépêche mentionne la politique de typage de Go, j'en profite pour poser quelques questions aux utilisateurs de python et ruby au sujet de cette fameuse politique de typage.
D'après ce que j'ai lu, python et ruby sont tout les deux très expressifs : on fait beaucoup avec peu de code. Python et ruby ne m'avertissent qu'au moment de l'exécution de certaines erreurs que je peux avoir commis :
- mauvais nom de variable : afficher (personne.DatttteDeNaissante )
- mauvais type : afficher( divise(entier1, chaine2) )
Du coup, si j'ai bien compris la philosophie, je dois écrire des tests pour tout. Y compris ce qui ne peut échouer que parce que les langages ne m'avertissent de certaines erreurs qu'à l'exécution.
( jusqu'ici j'ai bon ? ).
De mon point de vue, je perds un peu l'avantage de l'expressivité puisque même pour du code trivial, je dois écrire un test si je veux m'assurer que le code est bon.
Alors au quotidien, comment vous faites ? Vous écrivez des tests pour avoir 100% de couverture de votre code ? Vous livrez tel quel et vous corrigez si qqn tombe sur un bug idiot ? Il y'a des outils qui font certaines vérifications ? Eclairez moi.
[^] # Re: C'est quoi ce site de merde ?
Posté par snt . En réponse au journal Publication d'Hadopi dans le JO. Évalué à 10.
A l'heure actuelle : http://legifrance.gouv.fr/affichTexteArticle.do;jsessionid=8(...)
Comportement souhaité : http://qt.gitorious.org/qt/qt/merge_requests/1945#26a929c0cc(...)
Et dire qu'il y'a des juristes pour soutenir que l'informatique c'est moins clair que le droit.
# .
Posté par snt . En réponse au message [DLFP+GreaseMonkey] Cacher les journaux des gens que vous voulez. Évalué à 4.
[^] # Re: Gestion des dépendances
Posté par snt . En réponse au message Distribuer un intranet. Évalué à 3.
fournir les sources, laisser les créateurs de distro packager l'appli !
[^] # Re: Tutorial vidéo...
Posté par snt . En réponse au journal Sortie de Movicon, un framework MVC pour PHP. Évalué à 6.
[^] # Re: Décidément...
Posté par snt . En réponse au journal Les sept péchés de Windows Seven. Évalué à 10.
merci de cesser immédiatement d'insulter les noirs et les homosexuels !
[^] # Re: Morbide
Posté par snt . En réponse au journal Microsoft clôt une année noire sur un recul généralisé de ses activités. Évalué à 10.
"Je peux parfois blaguer à propos de Microsoft, mais en même temps, je pense que la haine de Microsoft est une maladie. Je crois au développement ouvert, et cela ne signifie pas seulement ouvrir le code source, mais également ne pas exclure de gens ou d'entreprises.
Il y a des « extrémistes » dans le monde du logiciel libre, et c'est une des raisons majeures pour lesquelles je n'appelle plus ce que je fais « logiciel libre ». Je ne veux pas être associé à des gens qui fonctionnent en termes d'exclusion et de haine."
# .
Posté par snt . En réponse au journal Vélib: agressivité du personnel de maintenance. Évalué à 2.
- un vélo en mauvais état, sous la flotte avec le risque de se faire écraser et de se faire insulter/menacer
- des transports en communs, bondés, pas surs, avec des fréquences pas toujours pratiques et des jours de grèves plus fréquents que les jours de pannes de la pire des bagnoles
- une voiture climatisée, sure, silencieuse, confortable, toujours à disposition
,les bouchons ont de beaux jours devant eux
# .
Posté par snt . En réponse à la dépêche Comparaison des performances OpenSuSE, Ubuntu, Fedora et Mandriva Linux. Évalué à 5.
[^] # Re: Press release
Posté par snt . En réponse au journal Microsoft sort un pilote Linux sous GPL. Évalué à 9.
>que le droit de fermer sa gueule et d'acheter du Vista à la Fnac.
La aussi les choses changent : d'ici quelques mois, le consommateur pourra acheter du windows 7.
# .
Posté par snt . En réponse au journal [HS] Le droit des femmes et la liberté d'expression. Évalué à 10.
En tout cas, c'est le roi de l'élégance, je comprends pas pourquoi sa bien aimée a préféré aller voir ailleurs.
# .
Posté par snt . En réponse à la dépêche Générer des nombres aléatoires avec Hasard 0.9.6. Évalué à 7.
[^] # Re: RAM limite ?
Posté par snt . En réponse au journal Performance MYSQL. Évalué à 2.
Est-ce à dire que tu penses que faire tourner ton serveur avec 256 Mo de RAM n'aura pas d'impact sur ses performances ;-) ?
Le cas ici est simple : il est possible de faire tenir l'ensemble des données en ram. C'est pas difficile d'ajouter 2 Go. Au pire l'entreprise a perdu 40 €. Au mieux y'a tout un tas de select qui ne seront plus dépendant des disques durs.
[^] # Re: MyISAM, RAID 5
Posté par snt . En réponse au journal Performance MYSQL. Évalué à 2.
Le 2eme point, c'est qu'une table de 600 Mo, c'est couteux. Ca fait des indexs importants à parcourir et à rééquilibrer en cas d'insert. C'est ptet le moment de penser à un partitionnement applicatif.
Petite remarque à part : un bi-xeon avec 2 Go de ram, c'est comme une porsche avec des pneux de twingo : ça m'étonnerait pas que le moteur soit sous exploité ;-)
Et pour savoir ce qu'il faut pour dans 3 ans, il serait interressant de connaitre le rythme de croissance de la base ? 1 Mo par mois ou 300 Mo par mois ?
# .
Posté par snt . En réponse au journal GCC lent. Évalué à 10.
- Est-ce que le CPU tourne à fond pendant la compil et le link ? Si c'est pas le cas, ça signifie que le proc attend des données. Dans ce cas il faut tester le disque. Un petit benchmark sur les deux machines peut te donner des infos intérressantes. Si il y'a un disque 5 fois plus rapide que l'autre, ça peut jouer fortement sur le temps total ( il n'y a pas si longtemps j'ai vu une base oracle sur un serveur linux plus que costaud se trainer. Il y avait une version pourrie de drivers raid qui faisait se trainer les I/O à 2 MO/s ! ).
# . liens clickables et précisions ( copié-collé du site du projet )
Posté par snt . En réponse au journal Piwam : Une gestion des droits utilisateurs. Évalué à 7.
Piwam vous permet de gérer tout ce qu'une association loi 1901 peut être amené à gérer :
* membres
* cotisations
* recettes / dépenses
* activités
Lien de démo clickable ?
http://piwam.frenchcomp.net/
Site du projet ?
http://code.google.com/p/piwam/
# .
Posté par snt . En réponse au journal Discussion interessante dans un bar. Évalué à 10.
# .
Posté par snt . En réponse au journal Hasard 0.8 : bibliothèque de génération des nombres aléatoires. Évalué à 5.
>Par exemple, « rand() % 10 » n'est pas la bonne méthode pour tirer un nombre entre 0 et 9, car elle est biaisée.
Est-ce que tu as plus d'explications ou un lien quelconque ? Ça m'intéresse. Merci.
# .
Posté par snt . En réponse au journal Oui je sais, on est pas Vendredi. Évalué à 10.
- Beaucoup de postes/articles sur ce sujet sont plus ou moins partisans : il ne faut pas oublier qu'IBM est une entreprise commerciale au même titre que Microsoft. J'essaye de lire chaque intervention en oubliant qui en est l'auteur. Pour limiter l'impact de mes préjugés et me concentrer sur le propos.
- La transparence a beaucoup progressé : les specs sont dispos gratuitement et perso j'aime bien la communication de Microsoft qui explique les choix qui ont été fait et pourquoi ( les développeurs qui ont déjà eu à implémenter des standards savent qu'on trouve toujours que les specs ne sont jamais assez précises. Dire ce qui n'est pas bon permet d'améliorer la version suivante ). De plus j'aime assez l'orientation précisée : dire quelles sont les priorités du développement et qu'une de ces priorités soit l'absence de mauvaise suprise : soit ça marche comme il faut, soit ça ne marche pas mais on ne prend pas la risque d'un choix qui pourrait laisser croire à l'utilisateur que ça a marché alors que les résultats sont faux.
- Le développement est un processus itératif : ceux qui s'attendent à ce qu'une implémentation soit parfaite à la 1ere version ne sont probablement pas développeurs. Il est donc encore un peu tôt pour prêter des intentions malsaines aux différents camps alors le support d'ODF est encore récente notamment chez Microsoft.
- Selon a peu près tout le monde ODF 1.2 comblera pas mal de lacunes. Je comprends l'impatience mais je trouve que dans l'ensemble les choses bougent plutot dans le bon sens.
- Qualifier son interlocuteur de "fanboy" décrédibilise plutôt l'auteur
- Moinsser sur linuxfr dès qu'on est pas d'accord n'est pas la plus belle preuve d'ouverture d'esprit
[^] # Re: Extraordinaire !!
Posté par snt . En réponse au journal ODF et Microsoft Office 2007 SP2 (suite et surement pas fin). Évalué à 3.
[^] # Re: Extraordinaire !!
Posté par snt . En réponse au journal ODF et Microsoft Office 2007 SP2 (suite et surement pas fin). Évalué à 3.
( et aussi à titre personnel je cherche la liste des fonctions et opérateurs utilisables dans les dites formules, alors si qqn à déjà épluché le truc et a les numéros de pages sous la main, bah je suis preneur ... )
[1] http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1.(...)
[^] # Re: Novell
Posté par snt . En réponse au journal Tomboy re-écrit en C++. Évalué à 6.
--
ça va trancher
# .
Posté par snt . En réponse au journal Les possibilités des nouvelles techno web. Évalué à 10.
- exécution dans un environnement dont l'accès aux ressources est contrôlé
- application non native de plus en plus souvent compilée à la volée
- des bibliothèques de base multiplateforme
Ce qui est rigolo, c'est que c'est pas la meilleure des machines virtuelles :
- Les implémentations sont pour le moins hétérogènes ( et j'essaye de rester diplomate )
- Un seul langage est supporté
- Les bibliothèques de base son plutôt pauvres et le tout manque cruellement de consistance
Bref, les standards de demain, c'est quand même moyennement funky.
Il faut s'extasier devant une appli qui pour faire tourner 2 vidéos demande un dual core et l'installation d'une JVM de 10 Mo encore en béta ? A coté de tout ça Java parait séduisant.
[^] # Re: Coté pratique.
Posté par snt . En réponse au journal Mise en place d'une formation aux logiciels libres.. Évalué à 1.
>Le meilleur exemple est la difficulté de sortir Vista, par rapport à la vitesse de mise à jour de Linux.
Il est supérieur selon quels critères ? En tant que développeur, c'est séduisant, mais le chef d'entreprise se pose quelles questions ?
- windows et office sont-ils plus répandus que linux et oo ?
- l'iphone est-il plus vendu que l'android ?
- gmail est-il plus utilisé que roundcube ?
Il faut préciser sinon on est vite discrédité.
>Linux fédère des milliers de développeurs, sans avoir des centaines de chef de projet, de réunions de suivi ou autre.
Si tu parles du noyau, il y'a une hiérarchie et des sous-systèmes. Des réunions aussi ( en ce moment, y'a le Linux Storage and Filesystem Workshop. J'ai hate de lire les comptes-rendu ).
Sinon il y'a une multitude de projets avec certains membres plus influents que d'autres.
# .
Posté par snt . En réponse au journal Mise en place d'une formation aux logiciels libres.. Évalué à 9.
- en tant que développeur, que dois-je regarder avant d'utiliser du code que je n'ai pas écrit ? Quelle peuvent-etre les conséquences sur mon propre code ?
- en tant qu'utilisateur/acheteur, que dois-je regarder avant d'obtenir/utiliser/acheter un logiciel ? Quelles sont les conséquences ?
- en tant qu'employé quels sont les droits que j'ai sur le code que j'écrit ?
Ces problèmes ne sont pas liés qu'aux logiciels libres. Quand tu utilises une bibliothèque tierce, il est bon de se poser des questions avant de l'intégrer que ça soit une bibliothèque libre ( impact sur mon code ? ) ou propriétaire ( royalties ? ).