Je ne connais pas bien les autres plates-formes, mais sur OS X, une bonne intégration ne se limite pas à avoir le même style et à avoir la bonne boîte de dialogue pour les fichiers.
Je pourrais citer en vrac : utiliser les champs textes intégrés (avec le correcteur orthographique et grammatical, le remplacement d'abréviations, …) , le trousseau de clefs (mots de passe, certificats, clefs privées, …), la possibilité de mettre ou de changer des raccourcis clavier sur tous les éléments du menu depuis les préférences globales, …
Même en C++, ce n'est pas évident. Par exemple, Qt ne fonctionne pas parfaitement sur OS X, si tu prends une application Qt sans la retravailler un peu, ça se voit qu'elle est faite en Qt et non en Cocoa.
Ça ne veut rien dire, ce qui est important c'est que ce qui est très utilisé soit bien codé. Pour ça, il faudrait faire un peu de profiling (ou connaître le code).
Pour les GPU, la consommation prend en compte celle de la RAM (et 6 Go de RAM, ça doit bien faire dans les 20 ou 30 W, c'est loin d'être négligeable).
Et pour les cartes de type Tesla, les blocs annexes ont été supprimés à mon avis (certaines n'ont de toute façon pas de sortie graphique).
À ma connaissance, une CG moderne n'est plus un pur SIMD, c'est plutôt un SIMD « par blocs ».
Pour les Xeon, j'ai mis des guillemets parce que justement ils peuvent être très bons, mais on pourra faire toujours mieux pour certains traitements (avec des ASIC, par exemple). Je voulais simplement dire qu'un Xeon moderne (ou équivalent) a en interne un peu de tout : du flottant, du SIMD flottant et entier avec le SSE , de l'entier, du chiffrement natif, pas mal de cache, … Bref, quelque soit le problème, tu auras toujours une partie du processeur qui ne servira à rien (donc processeur sous-optimal) mais tu auras aussi toujours la bonne instruction sous la main, et ce n'est pas le cas sur n'importe quel processeur.
Peut-on avoir des chiffres précis ? En GFlops/W, par exemple. Ça donnerait des indications sur ce que ça vaut vraiment.
En gros, on parle d'en gros 15-20 GFlops/W pour une Tesla moderne, alors que ça prend en compte les 6 Go de RAM.
Quand on me parle de « manycore », je pense en tout premier lieu aux cartes graphiques (ou leurs dérivées). Pour le coup, 256 cœurs, c'est plutôt ridicule pour une carte de calcul moderne. Les dernières Tesla ont par exemple pas loin de 3 000 cœurs.
Très grossièrement, les processeurs type Xeon sont « moyennement » bons partout. Les processeurs type Tesla sont excellents sur certains problèmes, très mauvais sur d'autres.
Justement, est-il choisi de mauvaises raisons ? Il serait intéressant de le prouver, au lieu de balancer des affirmations gratuites.
J'aurais tendance à dire qu'il a été conçu pour être le meilleur, et que c'est pour ça qu'il est supporté par le groupe, ainsi que par les groupes pirates.
Et ce n'est pas étonnant que quand la plupart de ceux qui possèdent les brevets ET les compétences bossent ensemble, ils arrivent à avoir un produit qui soit performant.
Si tu veux éviter de retrouver un serveur identique au tien en obscurcissant le code, autant ne pas donner son code source…
Une attitude « je vous donne le code source, mais je n'ai pas envie que vous l'utilisiez alors je garde la doc pour moi », c'est plutôt hypocrite, non ?
Normal, il faut bien que la version payante conserve quelques avantages ;) Et rien ne t'empêche de l'acheter si tu estimes que ça vaut le coup. Perso, j'ai franchi le pas (ainsi que la plupart de ceux que je connais qui ont essayé PhpStorm ou IntelliJ), et je ne le regrette pas un instant.
VP8/9 -> pas libre aujourd'hui
VP8/9 -> pas libre demain
VP10 -> aucune idée, ce qui fera gagner le plus d'argent à Google
Et personnellement, je n'ai pas souvenir avoir payé pour utiliser (encoder et décoder) du h264. La licence est planquée dans l'achat du matériel, comme celle du VP8/9.
Ce ne sont pas les mêmes protocoles, peut-être, mais c'est souvent lié en entreprise. Et un fichier .ics envoyé par mail est très loin d'être suffisant.
Avec Outlook, quand tu veux poser une réunion, tu choisis les participants et tu vois instantanément s'ils sont disponibles (avant d'envoyer l'invitation), Outlook peut aussi te montrer les dates et heures permettant de réunir un maximum de participants. Ensuite, c'est bien gentil d'envoyer l'invitation, mais il faut également avoir l'accusé réception (accepté/refusé/peut-être), que l'invité propose une date qui l'arrange davantage, … Quand tu veux envoyer un mail, tu peux également savoir si la personne est absente avant même que le mail ne soit envoyé (pratique pour l'envoyer à une autre personne capable de te répondre), et à nouveau on sort du simple protocole mail (enfin, IMAP+SMTP).
Je jongle fréquemment entre mails et calendrier (logique, vu que les échanges invitations/réponses comprennent des messages et commencent souvent par des mails), et c'est extrêmement pratique d'avoir les deux dans la même application.
Du coup, rien que pour ça, il faut une connexion niveau serveur entre carnets d'adresse, mail et calendrier (et on pourrait très bien imaginer d'autres choses).
Utilisateur de vim depuis quelques années (7 ou 8), j'ai tenté un premier passage à pycharm il y a un an… mais sans succès, j'avais trop de mal à me passer des raccourcis que j'avais mis en place.
Il y a 6 mois, j'ai retenté ma chance, et j'ai un peu persévéré. Au final, j'en suis très content, j'ai énormément gagné en productivité par rapport à vim. La qualité de mon code également, à vrai dire :D
Un comportement que j'adore réellement, mais que je n'arrive pas à reproduire sous Linux, c'est la correction rapide. Une bulle bleue apparaît sous la faute, et je peux corriger avec alt+entrée… mais sans me déplacer sur l'erreur, ce qui change la vie. Et quand il y a plusieurs erreurs (comme des imports manquants après un copier-coller), les erreurs sont soulignées les unes après les autres.
La consommation de RAM est non négligeable, mais reste bien plus faible qu'un Eclipse (1 Go pour une quinzaine de projets, chaque projet ayant son propre interpréteur Python, sachant qu'il n'y a qu'un seul processus Java pour tous les projets)
Quand tu as ton propre nom de domaine, tu peux mettre un « catch all » (par exemple *@mondomaine.org), pour rediriger tous les mails vers une autre adresse (ma_vraie_adresse@mondomaine.org). Très simple à mettre en place, et tu n'as pas besoin de créer les adresses à l'avance.
Quand tu veux faire les choses proprement avec un certificat maison, tu ne mets pas une CA racine auto-signée pour un site… Tu fais une CA racine valide très longtemps que tu gardes bien au chaud, et tu en sors des certificats (valides peu de temps) pour ton site.
C'est pourtant un élément de réponse. Avoir un langage qui pousse à l'erreur, qui ne permet pas beaucoup de vérifications statiques, qui n'a pas de systèmes de classes simples (et quand je suis tombé sur des explications sur le prototypage, c'était pour expliquer comment retrouver un truc utilisable en émulant un système de classes…), ça ne facilite pas la création de codes conséquents et maintenables.
Je ne suis pas du tout d'accord. On ne trouve pas ça dans tous les langages, en tout cas pas à ce niveau.
Sur wtfjs ou wtfphp, on parle de syntaxes qui ne font pas ce à quoi on pourrait logiquement s'attendre, ou qu'on ne peut pas prédire à la seule vue du code avant d'être déjà tombé sur ce cas pathologique.
Au contraire, les trucs cités sur Python sont soit liés à la transition Python 2 -> Python 3 (dont le but est justement d'éliminer les bêtises de Python 2, donc, oui, il y a des incompatibilités), soit des trucs et astuces pour améliorer un code fonctionnel ; autrement dit, le code écrit fait bien ce qui est attendu, mais on peut faire plus efficace.
Exemple de ce que tu cites sur stackoverflow :
Don't
for i in range(len(tab)) :
print tab[i]
Do :
for elem in tab :
print elem
Les deux sont facilement compréhensibles, et font bien ce qui est attendu. Rien à voir avec ce qu'on trouve avec JS, où [,,,] est compris comme [,,],
isFinite('42'); // true
isFinite('hi'); // false
…
Pour faire rapidement :
j'ai deux applications Django qui se ressemblent pas mal, avec chacune beaucoup de modèles (autour de la centaine).
Je veux réimporter les données de l'une dans l'autre, mais je ne veux pas établir à la main la correspondance entre les modèles car ça serait trop pénible et source d'erreurs.
Sachant qu'avec quelques règles simples du genre « les classes finissant par *X sont renommées en *Y », « tel attribut est renommé en truc », « tel nouvel attribut est la fusion de ces deux vieux attributs » , « les modèles avec deux clefs ForeignKey sont repris par des ManyToManyFields », etc, j'arrive à cerner 99% des modifications…
J'arrive donc à programmer la correspondance des classes et des attributs en faisant de l'introspection pour les déterminer, pour faire une passe à la main pour corriger les erreurs restantes.
Autre souci, j'ai plusieurs classes qui ont des dépendances réciproques. Dans ce cas, je peux déterminer automatiquement l'ordre de création des objets (la relation qui peut être vide n'est pas prise en compte lors d'une première passe).
Puis au passage, je génère un graphe régulièrement, afin de déterminer les relations entre classes, en mettant en valeur les classes qui héritent d'une classe particulière, ainsi que celles dont la partie admin est faite (idem pour les relations).
[^] # Re: Pas MP4
Posté par flan (site web personnel) . En réponse au journal Le format non-libre MPEG4 en passe d'être supporté sur Wikipédia ?. Évalué à 5.
Le format du conteneur est en effet le MPEG-4 Part 14. Cela dit, il est souvent utilisé pour contenir du Part 10, la phrase est un peu ambiguë.
[^] # Re: Autres plate-formes
Posté par flan (site web personnel) . En réponse au journal Gtk to Qt - A strange journey. Évalué à 2.
Je ne connais pas bien les autres plates-formes, mais sur OS X, une bonne intégration ne se limite pas à avoir le même style et à avoir la bonne boîte de dialogue pour les fichiers.
Je pourrais citer en vrac : utiliser les champs textes intégrés (avec le correcteur orthographique et grammatical, le remplacement d'abréviations, …) , le trousseau de clefs (mots de passe, certificats, clefs privées, …), la possibilité de mettre ou de changer des raccourcis clavier sur tous les éléments du menu depuis les préférences globales, …
[^] # Re: Local knowledge
Posté par flan (site web personnel) . En réponse au journal Gtk to Qt - A strange journey. Évalué à -1.
Même en C++, ce n'est pas évident. Par exemple, Qt ne fonctionne pas parfaitement sur OS X, si tu prends une application Qt sans la retravailler un peu, ça se voit qu'elle est faite en Qt et non en Cocoa.
[^] # Re: Uchronie
Posté par flan (site web personnel) . En réponse au journal Gtk to Qt - A strange journey. Évalué à -3.
En quoi est-ce une faute ?
[^] # Re: c'est une question de philosophie
Posté par flan (site web personnel) . En réponse au journal "Scaling Mercurial at Facebook". Évalué à 2.
Ce n'est pas le cas sur tous les OS, et heureusement !
[^] # Re: Mercurial
Posté par flan (site web personnel) . En réponse au journal "Scaling Mercurial at Facebook". Évalué à 1.
Ça ne veut rien dire, ce qui est important c'est que ce qui est très utilisé soit bien codé. Pour ça, il faudrait faire un peu de profiling (ou connaître le code).
[^] # Re: Et les cartes graphiques ?
Posté par flan (site web personnel) . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 1.
Pour les GPU, la consommation prend en compte celle de la RAM (et 6 Go de RAM, ça doit bien faire dans les 20 ou 30 W, c'est loin d'être négligeable).
Et pour les cartes de type Tesla, les blocs annexes ont été supprimés à mon avis (certaines n'ont de toute façon pas de sortie graphique).
Pour le reste, je suis d'accord avec toi.
[^] # Re: Et les cartes graphiques ?
Posté par flan (site web personnel) . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 5.
À ma connaissance, une CG moderne n'est plus un pur SIMD, c'est plutôt un SIMD « par blocs ».
Pour les Xeon, j'ai mis des guillemets parce que justement ils peuvent être très bons, mais on pourra faire toujours mieux pour certains traitements (avec des ASIC, par exemple). Je voulais simplement dire qu'un Xeon moderne (ou équivalent) a en interne un peu de tout : du flottant, du SIMD flottant et entier avec le SSE , de l'entier, du chiffrement natif, pas mal de cache, … Bref, quelque soit le problème, tu auras toujours une partie du processeur qui ne servira à rien (donc processeur sous-optimal) mais tu auras aussi toujours la bonne instruction sous la main, et ce n'est pas le cas sur n'importe quel processeur.
[^] # Re: Et les cartes graphiques ?
Posté par flan (site web personnel) . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 3. Dernière modification le 08 janvier 2014 à 21:52.
Peut-on avoir des chiffres précis ? En GFlops/W, par exemple. Ça donnerait des indications sur ce que ça vaut vraiment.
En gros, on parle d'en gros 15-20 GFlops/W pour une Tesla moderne, alors que ça prend en compte les 6 Go de RAM.
# Et les cartes graphiques ?
Posté par flan (site web personnel) . En réponse à la dépêche Kalray un processeur massivement parallèle très impressionnant : Qu’il est loin le temps de mon ZX81. Évalué à 6.
Quand on me parle de « manycore », je pense en tout premier lieu aux cartes graphiques (ou leurs dérivées). Pour le coup, 256 cœurs, c'est plutôt ridicule pour une carte de calcul moderne. Les dernières Tesla ont par exemple pas loin de 3 000 cœurs.
Très grossièrement, les processeurs type Xeon sont « moyennement » bons partout. Les processeurs type Tesla sont excellents sur certains problèmes, très mauvais sur d'autres.
[^] # Re: Dédicace Zenitram
Posté par flan (site web personnel) . En réponse au journal Le Codec VP9 reçoit le soutien de l'industrie.. Évalué à 4.
Justement, est-il choisi de mauvaises raisons ? Il serait intéressant de le prouver, au lieu de balancer des affirmations gratuites.
J'aurais tendance à dire qu'il a été conçu pour être le meilleur, et que c'est pour ça qu'il est supporté par le groupe, ainsi que par les groupes pirates.
Et ce n'est pas étonnant que quand la plupart de ceux qui possèdent les brevets ET les compétences bossent ensemble, ils arrivent à avoir un produit qui soit performant.
[^] # Re: licence pour projet opensource
Posté par flan (site web personnel) . En réponse à la dépêche PyCharm propose une version libre. Évalué à 1.
Ça vaut le coup, pourtant !
Mais ça demande un peu d'investissement pour être rentable, c'est sûr.
[^] # Re: Mais si, faut y croire !
Posté par flan (site web personnel) . En réponse au journal [bookmark] 2014 ne sera pas l'année du jeu libre. Évalué à 2.
Pour le coup, le jeu n'est plus franchement libre ;-)
[^] # Re: Mais si, faut y croire !
Posté par flan (site web personnel) . En réponse au journal [bookmark] 2014 ne sera pas l'année du jeu libre. Évalué à 2.
Si tu veux éviter de retrouver un serveur identique au tien en obscurcissant le code, autant ne pas donner son code source…
Une attitude « je vous donne le code source, mais je n'ai pas envie que vous l'utilisiez alors je garde la doc pour moi », c'est plutôt hypocrite, non ?
[^] # Re: IDE Python libre
Posté par flan (site web personnel) . En réponse à la dépêche PyCharm propose une version libre. Évalué à 3.
Normal, il faut bien que la version payante conserve quelques avantages ;) Et rien ne t'empêche de l'acheter si tu estimes que ça vaut le coup. Perso, j'ai franchi le pas (ainsi que la plupart de ceux que je connais qui ont essayé PhpStorm ou IntelliJ), et je ne le regrette pas un instant.
[^] # Re: google
Posté par flan (site web personnel) . En réponse au journal Le Codec VP9 reçoit le soutien de l'industrie.. Évalué à 4.
Ton résumé est faux. La bonne version est :
VP8/9 -> pas libre aujourd'hui
VP8/9 -> pas libre demain
VP10 -> aucune idée, ce qui fera gagner le plus d'argent à Google
Et personnellement, je n'ai pas souvenir avoir payé pour utiliser (encoder et décoder) du h264. La licence est planquée dans l'achat du matériel, comme celle du VP8/9.
[^] # Re: Pil poil
Posté par flan (site web personnel) . En réponse à la dépêche Sortie de Modoboa 1.1.0. Évalué à 5.
Ce ne sont pas les mêmes protocoles, peut-être, mais c'est souvent lié en entreprise. Et un fichier .ics envoyé par mail est très loin d'être suffisant.
Avec Outlook, quand tu veux poser une réunion, tu choisis les participants et tu vois instantanément s'ils sont disponibles (avant d'envoyer l'invitation), Outlook peut aussi te montrer les dates et heures permettant de réunir un maximum de participants. Ensuite, c'est bien gentil d'envoyer l'invitation, mais il faut également avoir l'accusé réception (accepté/refusé/peut-être), que l'invité propose une date qui l'arrange davantage, … Quand tu veux envoyer un mail, tu peux également savoir si la personne est absente avant même que le mail ne soit envoyé (pratique pour l'envoyer à une autre personne capable de te répondre), et à nouveau on sort du simple protocole mail (enfin, IMAP+SMTP).
Je jongle fréquemment entre mails et calendrier (logique, vu que les échanges invitations/réponses comprennent des messages et commencent souvent par des mails), et c'est extrêmement pratique d'avoir les deux dans la même application.
Du coup, rien que pour ça, il faut une connexion niveau serveur entre carnets d'adresse, mail et calendrier (et on pourrait très bien imaginer d'autres choses).
# Intérêt de Google ?
Posté par flan (site web personnel) . En réponse au journal Le Codec VP9 reçoit le soutien de l'industrie.. Évalué à 1.
Quel est l'intérêt de Google là-dedans ?
À part embêter Apple qui a tout son écosystème en H264 et qui migre en H265, naturellement.
# de vim à pycharm…
Posté par flan (site web personnel) . En réponse à la dépêche PyCharm propose une version libre. Évalué à 4.
Utilisateur de vim depuis quelques années (7 ou 8), j'ai tenté un premier passage à pycharm il y a un an… mais sans succès, j'avais trop de mal à me passer des raccourcis que j'avais mis en place.
Il y a 6 mois, j'ai retenté ma chance, et j'ai un peu persévéré. Au final, j'en suis très content, j'ai énormément gagné en productivité par rapport à vim. La qualité de mon code également, à vrai dire :D
Un comportement que j'adore réellement, mais que je n'arrive pas à reproduire sous Linux, c'est la correction rapide. Une bulle bleue apparaît sous la faute, et je peux corriger avec alt+entrée… mais sans me déplacer sur l'erreur, ce qui change la vie. Et quand il y a plusieurs erreurs (comme des imports manquants après un copier-coller), les erreurs sont soulignées les unes après les autres.
La consommation de RAM est non négligeable, mais reste bien plus faible qu'un Eclipse (1 Go pour une quinzaine de projets, chaque projet ayant son propre interpréteur Python, sachant qu'il n'y a qu'un seul processus Java pour tous les projets)
[^] # Re: Une idée
Posté par flan (site web personnel) . En réponse au journal Antispam, la solution ultime. Évalué à 3.
Quand tu as ton propre nom de domaine, tu peux mettre un « catch all » (par exemple *@mondomaine.org), pour rediriger tous les mails vers une autre adresse (ma_vraie_adresse@mondomaine.org). Très simple à mettre en place, et tu n'as pas besoin de créer les adresses à l'avance.
[^] # Re: « impropre à la création d'applications web complexe » ?
Posté par flan (site web personnel) . En réponse au journal Normalisation du langage Dart de Google par l'Ecma. Évalué à 0.
C'est ce qu'il dit, non ?
Ils ont créé une nouvelle machine virtuelle Java avec Dalvik, en reprenant et adaptant le concept de JVM. En tout cas, je le comprends ainsi.
[^] # Re: b0rked link
Posté par flan (site web personnel) . En réponse à la dépêche Appel à conférenciers pour Python-FOSDEM 2014. Évalué à 3.
Quand tu veux faire les choses proprement avec un certificat maison, tu ne mets pas une CA racine auto-signée pour un site… Tu fais une CA racine valide très longtemps que tu gardes bien au chaud, et tu en sors des certificats (valides peu de temps) pour ton site.
[^] # Re: « impropre à la création d'applications web complexe » ?
Posté par flan (site web personnel) . En réponse au journal Normalisation du langage Dart de Google par l'Ecma. Évalué à 8.
C'est pourtant un élément de réponse. Avoir un langage qui pousse à l'erreur, qui ne permet pas beaucoup de vérifications statiques, qui n'a pas de systèmes de classes simples (et quand je suis tombé sur des explications sur le prototypage, c'était pour expliquer comment retrouver un truc utilisable en émulant un système de classes…), ça ne facilite pas la création de codes conséquents et maintenables.
[^] # Re: « impropre à la création d'applications web complexe » ?
Posté par flan (site web personnel) . En réponse au journal Normalisation du langage Dart de Google par l'Ecma. Évalué à 6.
Je ne suis pas du tout d'accord. On ne trouve pas ça dans tous les langages, en tout cas pas à ce niveau.
Sur wtfjs ou wtfphp, on parle de syntaxes qui ne font pas ce à quoi on pourrait logiquement s'attendre, ou qu'on ne peut pas prédire à la seule vue du code avant d'être déjà tombé sur ce cas pathologique.
Au contraire, les trucs cités sur Python sont soit liés à la transition Python 2 -> Python 3 (dont le but est justement d'éliminer les bêtises de Python 2, donc, oui, il y a des incompatibilités), soit des trucs et astuces pour améliorer un code fonctionnel ; autrement dit, le code écrit fait bien ce qui est attendu, mais on peut faire plus efficace.
Exemple de ce que tu cites sur stackoverflow :
Les deux sont facilement compréhensibles, et font bien ce qui est attendu. Rien à voir avec ce qu'on trouve avec JS, où [,,,] est compris comme [,,],
isFinite('42'); // true
isFinite('hi'); // false
…
[^] # Re: Déploiement de Django
Posté par flan (site web personnel) . En réponse au journal Retour d'expérience sur la mise en ligne d'un nouveau site (Django). Évalué à 3.
Pour faire rapidement :
j'ai deux applications Django qui se ressemblent pas mal, avec chacune beaucoup de modèles (autour de la centaine).
Je veux réimporter les données de l'une dans l'autre, mais je ne veux pas établir à la main la correspondance entre les modèles car ça serait trop pénible et source d'erreurs.
Sachant qu'avec quelques règles simples du genre « les classes finissant par *X sont renommées en *Y », « tel attribut est renommé en truc », « tel nouvel attribut est la fusion de ces deux vieux attributs » , « les modèles avec deux clefs ForeignKey sont repris par des ManyToManyFields », etc, j'arrive à cerner 99% des modifications…
J'arrive donc à programmer la correspondance des classes et des attributs en faisant de l'introspection pour les déterminer, pour faire une passe à la main pour corriger les erreurs restantes.
Autre souci, j'ai plusieurs classes qui ont des dépendances réciproques. Dans ce cas, je peux déterminer automatiquement l'ordre de création des objets (la relation qui peut être vide n'est pas prise en compte lors d'une première passe).
Puis au passage, je génère un graphe régulièrement, afin de déterminer les relations entre classes, en mettant en valeur les classes qui héritent d'une classe particulière, ainsi que celles dont la partie admin est faite (idem pour les relations).