Le logiciel s'appuie sur GStreamer en entrée comme en sortie donc j'imagine que oui. Après si tu préfère une meilleur maitrise, transcode avec mencoder dans un format mieux implémenté.
En feuilletant la documentation d'Opera Mini, je me suis rendu compte que le javascript est évalué coté serveur pour ce navigateur.
Opera utilise ainsi une technologie qui leur permet d'évaluer la page web coté serveur et transmet la page résultant sous forme binaire appelée OBML [http://dev.opera.com/articles/view/opera-binary-markup-langu(...)]. L'avantage de cette solution à l'avantage de consommer très peu de bande passante et de diminuer le calcul coté client.
Un autre aspect qui facilite la prise en main d'un exécutable est l'inclusion dans le langage de pre, post -conditions et invariants ce qui facilite le déverminage. On peut aussi noter la conservation des commentaires ce qui permet de facilement retrouver la translation d'un algorithme particulier.
En résumé, actuellement la déverminage se passe sur la mailing-list car la majorité des utilisateur lise du C facilement.
En fait on est vraiment sur des micro-benchs. Dans BinaryTrees on test *uniquement* l'allocation et la désallocation mémoire. Et effectivement, sur celui-ci, lorsqu'on est dépendant de libgobject, les performances sont moins bonnes car libgobject est compilé avec '-O2 -g' et je ne m'amuse pas à recompiler libgobject ni libc ni mono pour les benchs.
Il y a un rajout de code et de temps d'exécution mais dans une application réelle, tu ne fait pas qu'allouer ou désallouer des objets, non ? Ainsi quand on fait une somme sur l'ensemble des tests implémentés, le Vala s'approche du C.
Concernant le fait de rajouter une couche objet plus maligne, il faut bien différencier deux choses :
- une implémentation à tendance statique, style C++
- une implémentation à tendance dynamique, style Objective-C ; Java ; .NET ; GObject
Donc en soit on ne peut pas vraiment comparer C++ et C/GObject car le fonctionnement est différent. Personnellement, j'ai voulu comparer l'impact d'une machine virtuelle en conservant une environnement haut-niveau équivalent (Vala vs C#), le C++ a été ajouté par la suite.
En fait le "couche objet", comme tu l'appelle est utilisé pour créer des GObject. Dans certains cas tu peux préciser dans le langage Vala de ne pas l'utiliser comme, par exemple, dans le cas du test BinaryTree.
Pour obtenir les meilleures performances du code généré, j'ai du effectuer un choix parmi les différents types de classes :
- héritant de GObject (publiques et enregistrées dans GObject)
public class MyClass : Object {
...
}
- implémentant GObject par le compilateur (publiques)
public class MyClass {
...
}
- implémentant GObject partiellement par le compilateur
[Compact]
public class MyClass {
...
}
- passant les paramètres par valeur
public struct MyClass {
...
}
Tu peux t'amuser avec les différents façon et tu observera une différence réelle dans ce test. Le Vala a ainsi l'avantage de te laisser choisir l'implémentation en C par construction ce que ne permettent pas d'autres langages.
Il faut aussi te méfier avec des tests comme ceux-ci car les performances lors de la construction dépendent de la librairie GObject donc de la façon de la compiler. Pour ce benchmark je me suis restreint à la distribution par défaut dans Debian Squeeze.
Si tu veux écrire une bibliothèque C++ réutilisable en C tu devras réfléchir à ce que vas faire le compilateur au niveau binaire dès lors que tu utilise du C++ complexe.
Quand tu écris du Vala, le code généré est *très* lisible et permet de comprendre le travail réalisé derrière. De plus des 'binding' antre langages automatiques sont réalisés grâce aux capacités de GObject pour l'introspection, cf [http://live.gnome.org/GObjectIntrospection].
Une autre approche est d'utiliser un générateur d'interface tel que SWIG [http://www.swig.org] mais, personnellement je trouve cette approche très lourde par rapport à l'introspection.
Par expérience professionnel je te recommanderait la marque OSRAM. Simplement, sa gamme de LEDs est la seule à avoir été retenue pour équiper les automobiles au niveau de la qualité de fabrication.
De plus pour une lame de bureau tu peux utiliser un Dot-It que tu peux coler ou tu veux ou quelque chose d'un peux plus 'classe'.
Personnellement j'utilise GNU gcov. Je ne comprend pas pourquoi tu dis qu'il est cryptique. Peux tu m'expliquer ?
GNU gcov est un outil puissant mais pas très bien documenté. Je l'utilise pour générer les fichiers couverture, ceux-ci peuvent ensuite être facilement analysés par GNU awk ou même un tableur (fichiers délimités).
Une application basé sur la plateforme gnome, Zeitgeist, permet, d'un point de vue utilisateur, d'utiliser des tags afin de trier l'ensemble des documents supportés.
Cette solution est partielle, n'inclut que les composants gnome, et ne répond pas parfaitement à la problématique d'un système de fichier relationnel mais répond à un besoin. À noter que l'intégration dans Gnome 3.0 (2.30) est prévue.
Ayant assisté à la conférence RMLL je peux essayer de te faire un résumé.
buildroot était développé par un seul bonhomme Peter Korsgaard et supportant uniquement uClibc. Cette ensemble de script était peu maintenable/maintenu et supporte (relativement) peu de paquetages.
La communauté OpenWrt a choisi d'améliorer le système de construction de buildroot pour cette distribution ce qui a donné un premier fork. Le système de OpenWrt utilise des description à la .deb et fournis un installateur dynamique (à chaud) un peu comme une distribution classique.
Une autre équipe à choisi elle de conserver l'aspect distribution indépendant et image statique ce qui a donné buildroot-ng qui supporte différentes libc et un nombre plus grand de paquetages.
Voilà pour un résumé mais je pense que la vidéo va arriver d'ici peu.
j'ai déjà eu le cas dans ma formation de pouvoir parler avec des personnes travaillant dans la domaine de la protection intellectuelle. Et en substance les réponses ont été les mêmes.
Tous simplement je dirais que ces gens ont un métier et qu'ils ne sont pas impartial sur le sujet. Ils n'ont sans doute pas envie de se retrouver au chômage ...
Au jour d'aujourd'hui c'est bien sûr utilisable en 2D (Xv, EXA et XRender) et la 3D progresse bien et en même temps que Gallium3D. Avant de critiquer un projet c'est mieux de suivre son avancement. http://nouveau.freedesktop.org/wiki/FeatureMatrix
A priori, plusieurs OS (enfin à ce stade ce serait plutôt des middleware) existent avec des buts équivalents. De même ils utilisent tous leurs propres languages ou des languages existants qui permettent cette isolation (Singularity -> Spec# Sing# ; Inferno -> Limbo ; JavaOS -> Java)
En fait les SIPs existent déjà sous d'autres système (cf ci-dessus) mais pour MS cela ne suffit pas. Ils veulent intégrer ce mode de fonctionnement dans le langage de programmation afin de simplifier la gestion de ce mécanisme dans l'OS.
Pour plus d'informations lit le pdf certes en anglais mais très intéressant pour qui s'intéresse aux mécanisme de protection et d'abstraction du matériel.
Alors pour cibler d'où vient l'info il suffit de remonter à la source :
yahoo -> zdnet -> sdtimes.com
Et pour les vrais informations il suffit de remonter tous simplement à la source :
Singularity: Rethinking the Software Stack [http://research.microsoft.com/pubs/69431/osr2007_rethinkings(...)] "Advances in languages, compilers, and tools open the possibility of significantly improving software. For example, Singularity uses type-safe languages and an abstract instruction set to enable what we call Software Isolated Processes (SIPs). SIPs provide the strong isolation guarantees of OS processes (isolated object space, separate GCs, separate runtimes) without the overhead of hardware-enforced protection domains. In the current Singularity prototype SIPs are extremely cheap; they run in ring 0 in the kernel’s address space."
Likewise for local concurrency, Midori will have a programming model, a platform stack and execution techniques that are intended to help developers write applications that can safely and efficiently use a greater number of hardware threads than is currently feasible. Elements in local parallelism interact through shared memory, which is the huge difference with distributed applications, said Microsoft distinguished engineer John Manferdelli, in a separate interview.
Pour l'instant rien de neuf à l'horizon, sous Linux/Unix des sockets locales ou distants dans des programmes distribués ça se fait depuis un certains temps. Je pense que ce qui peut être nouveau c'est l'aspect montée en charge de l'application style Erlang.
Cependant MS va encore ré-inventer ce qui existe mais va gagner avec leur pression commerciale. A voir notamment le papier (web) du SDTimes et ce que fait déjà Erlang.
[^] # Re: Mais pourquoi galérer avec le montage vidéo ?
Posté par Clément David (site web personnel) . En réponse au journal [H.S] Je suis content.. Évalué à 1.
# Mais pourquoi galérer avec le montage vidéo ?
Posté par Clément David (site web personnel) . En réponse au journal [H.S] Je suis content.. Évalué à 5.
# Un bout de temps que c'est utilisé !!! [NON LIBRE]
Posté par Clément David (site web personnel) . En réponse au journal Javascript côté serveur, intéressant ou pas ?. Évalué à 3.
Opera utilise ainsi une technologie qui leur permet d'évaluer la page web coté serveur et transmet la page résultant sous forme binaire appelée OBML [http://dev.opera.com/articles/view/opera-binary-markup-langu(...)]. L'avantage de cette solution à l'avantage de consommer très peu de bande passante et de diminuer le calcul coté client.
Implémenté dans la version 5 du navigateur Opera Mini, le support du javascript coté serveur est assez impressionnant [http://dev.opera.com/articles/view/opera-mini-5-beta-develop(...)]. En effet celui-ci permet de naviguer sur facebook, twitter, etc...
Peut-être cette technique va-t-elle se répandre dans l'avenir ? (à vos réflexions)
[^] # Re: Et le déboguage ?
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 3.
Il existe un patch pour gdb qui permet de déverminer facilement du code Vala [http://abderrahim.arablug.org/blog/archives/8-GDB-Vala-suppo(...)]. Cependant l'utilité de ce patch est, pour moi, réduite car Vala utilise des conventions simples.
Un autre aspect qui facilite la prise en main d'un exécutable est l'inclusion dans le langage de pre, post -conditions et invariants ce qui facilite le déverminage. On peut aussi noter la conservation des commentaires ce qui permet de facilement retrouver la translation d'un algorithme particulier.
En résumé, actuellement la déverminage se passe sur la mailing-list car la majorité des utilisateur lise du C facilement.
[^] # Re: Performancesvv
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 1.
Il y a un rajout de code et de temps d'exécution mais dans une application réelle, tu ne fait pas qu'allouer ou désallouer des objets, non ? Ainsi quand on fait une somme sur l'ensemble des tests implémentés, le Vala s'approche du C.
Concernant le fait de rajouter une couche objet plus maligne, il faut bien différencier deux choses :
- une implémentation à tendance statique, style C++
- une implémentation à tendance dynamique, style Objective-C ; Java ; .NET ; GObject
Donc en soit on ne peut pas vraiment comparer C++ et C/GObject car le fonctionnement est différent. Personnellement, j'ai voulu comparer l'impact d'une machine virtuelle en conservant une environnement haut-niveau équivalent (Vala vs C#), le C++ a été ajouté par la suite.
[^] # Re: Performances
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 3.
Pour obtenir les meilleures performances du code généré, j'ai du effectuer un choix parmi les différents types de classes :
- héritant de GObject (publiques et enregistrées dans GObject)
public class MyClass : Object {
...
}
- implémentant GObject par le compilateur (publiques)
public class MyClass {
...
}
- implémentant GObject partiellement par le compilateur
[Compact]
public class MyClass {
...
}
- passant les paramètres par valeur
public struct MyClass {
...
}
Tu peux t'amuser avec les différents façon et tu observera une différence réelle dans ce test. Le Vala a ainsi l'avantage de te laisser choisir l'implémentation en C par construction ce que ne permettent pas d'autres langages.
Il faut aussi te méfier avec des tests comme ceux-ci car les performances lors de la construction dépendent de la librairie GObject donc de la façon de la compiler. Pour ce benchmark je me suis restreint à la distribution par défaut dans Debian Squeeze.
[^] # Re: je suis pas convaincue
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 1.
Quand tu écris du Vala, le code généré est *très* lisible et permet de comprendre le travail réalisé derrière. De plus des 'binding' antre langages automatiques sont réalisés grâce aux capacités de GObject pour l'introspection, cf [http://live.gnome.org/GObjectIntrospection].
Une autre approche est d'utiliser un générateur d'interface tel que SWIG [http://www.swig.org] mais, personnellement je trouve cette approche très lourde par rapport à l'introspection.
[^] # Re: Performances
Posté par Clément David (site web personnel) . En réponse à la dépêche Sortie de Vala 0.7.6. Évalué à 3.
À l'origine ma démarche a été de discuter avec Isaac Gouy du shootout (voir [http://alioth.debian.org/forum/forum.php?thread_id=3619&(...)]) cependant celui-ci n'a pas jugé le Vala comme langage intéressant pour son projet. J'ai donc lancé [http://code.google.com/p/vala-benchmarks/] pour écrire l'ensemble des tests avec comme but final d'être intégré au shootout.
Actuellement un certains nombre de tests ont été implémentés et on permis de fournir une base d'exemple de code.
[^] # Re: Clang
Posté par Clément David (site web personnel) . En réponse au journal Giant GCC versus Mega LLVM. Évalué à 2.
voir [https://linuxfr.org//~Snarky/28133.html]
[^] # Re: O_o
Posté par Clément David (site web personnel) . En réponse au journal Propagande sur la chaîne parlementaire LCP. Évalué à 10.
[^] # Re: Marques
Posté par Clément David (site web personnel) . En réponse au journal Encore et toujours et toujours des économies avec mes amies les lampes fluocompactes. Évalué à 2.
De plus pour une lame de bureau tu peux utiliser un Dot-It que tu peux coler ou tu veux ou quelque chose d'un peux plus 'classe'.
Do-it : [http://www.osram.com/osram_com/Consumer/Luminaires/DOT_-_it_(...)]
Luminaire de bureau : [http://www.osram.fr/osram_fr/Grand_Public/Luminaires/Luminai(...)]
[^] # Re: Code coverage ?
Posté par Clément David (site web personnel) . En réponse au journal Sortie de Valgrind 3.5.0. Évalué à 1.
GNU gcov est un outil puissant mais pas très bien documenté. Je l'utilise pour générer les fichiers couverture, ceux-ci peuvent ensuite être facilement analysés par GNU awk ou même un tableur (fichiers délimités).
# Du coté de gnome
Posté par Clément David (site web personnel) . En réponse au journal [webmail] Organisation en répertoire ou tag/label/libellé. Évalué à 2.
Zeitgeist : [http://live.gnome.org/GnomeZeitgeist]
Vidéo : [http://seilo.geekyogre.com/uploads/2009/03/Zeitgeist.ogv]
Cette solution est partielle, n'inclut que les composants gnome, et ne répond pas parfaitement à la problématique d'un système de fichier relationnel mais répond à un besoin. À noter que l'intégration dans Gnome 3.0 (2.30) est prévue.
Gnome 3.0 Plan : [http://live.gnome.org/ThreePointZero/Plan]
[^] # Re: Relation buildroot -- buildroot-ng ?
Posté par Clément David (site web personnel) . En réponse à la dépêche Publication des vidéos de l'Embedded Linux Conference 2009. Évalué à 2.
buildroot était développé par un seul bonhomme Peter Korsgaard et supportant uniquement uClibc. Cette ensemble de script était peu maintenable/maintenu et supporte (relativement) peu de paquetages.
La communauté OpenWrt a choisi d'améliorer le système de construction de buildroot pour cette distribution ce qui a donné un premier fork. Le système de OpenWrt utilise des description à la .deb et fournis un installateur dynamique (à chaud) un peu comme une distribution classique.
Une autre équipe à choisi elle de conserver l'aspect distribution indépendant et image statique ce qui a donné buildroot-ng qui supporte différentes libc et un nombre plus grand de paquetages.
Voilà pour un résumé mais je pense que la vidéo va arriver d'ici peu.
[^] # Re: MD6
Posté par Clément David (site web personnel) . En réponse à la dépêche Rugby et cryptographie : Shabal est en demi-finale !. Évalué à 2.
C'est un peu difficile à résumer mais globalement par machine on arrive à cerner les différentes performances.
[^] # Re: Radio Paradise
Posté par Clément David (site web personnel) . En réponse au journal HTML5, radio, musique libre. Évalué à 1.
L'interface n'est pas super mais les URLs des flux sont accessibles. Diverses programmations sont possibles (par flux à thèmes).
[^] # Re: Layout CSS multi-colonnes facile
Posté par Clément David (site web personnel) . En réponse à la dépêche Concours de design FullCSS. Évalué à 1.
# Juste une remarque rapide
Posté par Clément David (site web personnel) . En réponse au journal Discussion interessante dans un bar. Évalué à 10.
Tous simplement je dirais que ces gens ont un métier et qu'ils ne sont pas impartial sur le sujet. Ils n'ont sans doute pas envie de se retrouver au chômage ...
[^] # Re: Clause nulle
Posté par Clément David (site web personnel) . En réponse au journal [emploi]"L'UMP veut favoriser le prêt de main-d'oeuvre". Évalué à 4.
La clause de conférence est un gros piège pour les entreprises.
Si elle est appliquée, l'ancien employé est en droit de réclamer le montant de son salaire à son ancien employeur pendant toute la durée de la clause.
En gros personne n'en tient compte... (un légiste pour confirmer ???)
[^] # Re: cool
Posté par Clément David (site web personnel) . En réponse à la dépêche Cloonix : création graphique de réseaux virtuels. Évalué à 2.
http://www.xbill.org/ :)
[^] # Re: sale temps
Posté par Clément David (site web personnel) . En réponse au journal Darcs 2.2 release candidate. Évalué à 0.
C'est ce qui fait la puissance de git à mon avis, on le considère comme une spécification avant de choisir un client. Vivement l'intégration de ces nouveaux clients dans les IDEs ( [http://git.or.cz/gitwiki/EclipsePlugin] et [http://code.google.com/p/nbgit/] ) .
[^] # Re: synthèse
Posté par Clément David (site web personnel) . En réponse à la dépêche AMD continue l'ouverture des spécifications de GPU. Évalué à 10.
http://nouveau.freedesktop.org/wiki/FeatureMatrix
Le driver est dans debian experimental est relativement stable [http://packages.debian.org/fr/experimental/xserver-xorg-vide(...)]. Le projet Fedora propose aussi le driver nouveau depuis FC7 [http://fedoraproject.org/wiki/Releases/FeatureNouveau].
<anti_ubuntu_primaire>C'est vrai que si tu utilise une distribution qui préfère des solutions propriétaires...</anti_ubuntu_primaire>
[^] # Re: Et les liens ?
Posté par Clément David (site web personnel) . En réponse au journal Microsoft réécrit Hurd ?. Évalué à 1.
Wikipedia : [http://en.wikipedia.org/wiki/Singularity_(operating_system)#(...)]
[^] # Re: Et les liens ?
Posté par Clément David (site web personnel) . En réponse au journal Microsoft réécrit Hurd ?. Évalué à 2.
Pour plus d'informations lit le pdf certes en anglais mais très intéressant pour qui s'intéresse aux mécanisme de protection et d'abstraction du matériel.
le pdf : [http://research.microsoft.com/pubs/69431/osr2007_rethinkings(...)]
# Et les liens ?
Posté par Clément David (site web personnel) . En réponse au journal Microsoft réécrit Hurd ?. Évalué à 10.
yahoo -> zdnet -> sdtimes.com
Et pour les vrais informations il suffit de remonter tous simplement à la source :
Singularity: Rethinking the Software Stack [http://research.microsoft.com/pubs/69431/osr2007_rethinkings(...)]
SDTimes [http://www.sdtimes.com/MICROSOFT_S_PLANS_FOR_POST_WINDOWS_OS(...)]
Pour l'instant rien de neuf à l'horizon, sous Linux/Unix des sockets locales ou distants dans des programmes distribués ça se fait depuis un certains temps. Je pense que ce qui peut être nouveau c'est l'aspect montée en charge de l'application style Erlang.
Cependant MS va encore ré-inventer ce qui existe mais va gagner avec leur pression commerciale. A voir notamment le papier (web) du SDTimes et ce que fait déjà Erlang.
Pete Thinks [Way Too Much] [http://mikepetry.blogspot.com/2007/12/erlang-scalability-nex(...)]
Erlang Concurrent Programming [http://erlang.org/course/concurrent_programming.html]