Dernière(s) dépêche(s) RSS [Toutes] :


Dernières entrées de forum(s) RSS [Toutes] :


[ 1 2 3 :: Suivant ]

Réseau social décentralisé

Posté le 11 septembre 2008
7
Bonjour,

Je trouve le concept de réseau social très intéressant, cela permet de se connecter avec d'autres personnes sur le web. Par contre, je n'aime pas trop comment c'est réalisé, et surtout sa fragmentation. Par exemple pour avoir des amis sur Facebook, il faut s'inscrire, de même pour chacun des autres réseaux.

Internet a été conçu pour être décentralisé, entre autre le mail (SMTP), les serveurs web (HTTP), Jabber (XMPP) ou OpenID reposent eux aussi tous sur ce principe que j'affectionne. Je me pose donc la question de comment on pourrait créer un réseau social utilisant des technologies décentralisées et standard.

Je ne connais pas bien les réseaux sociaux (je ne les ai pas encore beaucoup pratiqué à cause justement ce cet aspect propriétaire qui veut qu'on confie toute sa vie à un site web en lequel on n'a pas forcément confiance), alors je ne vais peut être pas être complètement correcte.

d'abord, établissons ce qu'on a besoin:
- contenu (blog bien souvent, sous diverses formes multimédia. Texte, images, vidéos)
- commentaires sur le contenu, authentifié
- association avec des amis
- souscription aux contenu d'autres personnes
- page personnelle résumant l'identité de quelqu'un

bon, j'oublie sûrement plein de choses

Voyons ce qu'on pourrais utiliser pour chaque chose:

contenu : des pages HTML, surtout qu'avec HTML5 on a la balise . Cela semble approprié.

commentaires : si on aime faire des pages statiques, on n'a aucune solution de ce coté. Sinon on peut utiliser un script PHP qu'on peut inclure sur les pages de contenu. Et tout passe par une interface Web.

Je pensait qu'il pourrait sans doute être intéressant de créer un standard pour poster des commentaires sur une page. Par exemple une balise < header > dans la section < head > d'une page HTML pourrait donner l'adresse d'un script CGI qui pourrait recevoir des commentaires (POST) sous un format standardisé, et en donner la liste sous une forme standardisée (XML probablement, surtout que les namespaces XML permettent de rajouter des informations spécifiques facilement, comme par exemple la note d'un commentaire). Le navigateur pourrait alors proposer une interface pour poster des commentaires et les lire, rien n'empêcherait le site à proposer une interface Web qui s'intègrerait mieux avec son design et gèrerait les extensions qu'il pourrait vouloir ajouter (les notes des commentaires). Tout cela utiliserait OpenID bien sûr

amis : Facile, la liste de contacts de Jabber/XMPP

souscriptions aux contenu de quelqu'un : on a RSS non ? par contre aucune authentification. La personne qui propose les contenus n'a aucun moyen de connaître qui à souscrit à ses contenus.

On pourrait imaginer une authentification OpenID pour accéder au flux RSS par exemple (si on veut partager certaines choses avec ses amis seulement par exemple). On pourrait imaginer même d'intégrer OpenID à HTTP. J'aimerais bien en tout cas.
Ce serait bien aussi que dans le profil Jabber (vCard) on puisse avoir un champ où on puisse mettre son OpenID (ou dans OpenID, un endroit où on peut mettre son adresse jabber :)

pages personnelle : Un script PHP qui agrègerait toutes ces informations pourrait être mis en place sur un serveur, idéalement il contiendrait aussi une redirection OpenID. Mais agréger tout cela n'est pas forcément évident:

- Statut de la personne. On peut piocher dans la vCard jabber/XMPP.
- Ses amis: la liste de contact Jabber/XMPP
- Qui à souscrit à ses contenus: en communiquant avec le module qui gère les flux RSS authentifiés
- Résumé des contenus: on suppose que c'est sur le même serveur/gérés par la même application et que cela peut donc être su assez facilement

Finalement, en écrivant cela je me rend compte qu'on a déjà presque tous les éléments. Reste à mon avis ce système de commentaires que j'aimerais voir intégré au navigateur et authentifié par OpenID, mais sinon, il n'y a qu'une intégration Web/HTML <-> Jabber/XMPP à faire.
Comme je vous l'ai dit, je ne connais pas bien les réseaux sociaux, donc, avez vous d'autres idées ?

Mildred

> Lire le journal (29 commentaires, moyenne: 3,2).

Des enfants qui s'enseignent eux-même

Posté le 10 septembre 2008
2
Une vidéo (en anglais) très intéressante sur comment les enfants peuvent s'organiser eux-même pour apprendre sans l'intervention d'adultes:

http://www.youtube.com/watch?v=xRb7_ffl2D0

Cela m'a fait penser au projet OLPC, et je trouve ça formidable, j'avais envie de partager avec vous.

> Lire le journal (19 commentaires, moyenne: 4,3).

Vidéos du MIT sur l'informatique

Posté le 08 septembre 2008
10
L'information date, je sais, et a probablement déjà été publiée ici. mais j'avais perdu le lien après avoir regardé la première vidéos et ça faisait longtemps que je le cherchais.

http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussma(...)

Des vidéos de cours du MIT.

Rien à voir, mais j'ai l'impression qu'avec la disparition des journaux de seconde page, plus de gens hésitent à poster (ce qui est dommage) car ils se sentent obligés de faire quelque chose de plus complet. Ce serait bien par exemple si on pouvait faire des journaux de seconde page (mais si ils sont trop bien, que les notes les refassent passer en première page)

> Lire le journal (2 commentaires, moyenne: 3).

Gestion du matériel gourmande en resources (udev, hal) ?

Posté le 06 juin 2008
0
Bonsoir,

Suite au récent journal parlant de la manière d'installer GNU/Linux sur un vieux PC, et à des pensées personnelles, je me demande jusqu'à quel point la gestion du matériel peux prendre des ressources (je pense au temps CPU au démarrage).

En effet, j'ai bien l'impression que udev et HAL [http://en.wikipedia.org/wiki/HAL_(software)], à eux deux, consomment pas mal. je n'ai pas de chiffres, mais il me semble que c'est ce qui met le plus de temps à démarrer. De plus on voit des gens se plaindre de la lenteur d'udev (que j'ai rencontrée moi même, à une moindre échelle), et une dépêche récente parle des problèmes de HAL [http://linuxfr.org/2008/05/08/24045.html]

Alors voilà, la question est ouverte.

Je suppose que si cela prend du temps, c'est qu'il faut tester toutes les combinaisons possibles de matériel. Et comme finalement, GNU/Linux support nativement plein de matériel, ça fait plein de tests à faire.
Serait il possible de mettre en cache le résultat de cette investigation ? Comme ça, ça prend du temps juste la première fois. Ensuite tout est cherché en cache. Bien sûr il faudrait faire quelques petits tests pour voir si il n'y a pas eu de changement, mais on pourrait penser que c'est plus rapide ...

En regardant comment le EEEpc ou d'autres pc similaires peuvent faire booter Linux rapidement sur une config matérielle maîtrisée, on peut raisonnablement en déduire que le problème de performances vient bien de là.

Qu'en pensez vous ?

> Lire le journal (37 commentaires, moyenne: 2,9).

Firefox est-il toujours libre ?

Posté le 01 juin 2008
0
Suite à une mise à jour de ma distribution (ArchLinux), j'ai vu arriver la RC1 de firefox3 Et quelle n'a pas été ma surprise en lançant firefox de devoir accepter un EULA (End User Licence Agreement) ...

Le voici:

MOZILLA FIREFOX END-USER SOFTWARE LICENSE AGREEMENT

Version 3.0, May 2008



A source code version of certain Firefox Browser functionality that you may use, modify and distribute is available to you free-of-charge from www.mozilla.org under the Mozilla Public License and other open source software licenses.


The accompanying executable code version of Mozilla Firefox and related documentation (the "Product") is made available to you under the terms of this Mozilla Firefox End-User Software License Agreement (the "Agreement"). By clicking the "Accept" button, or by installing or using the Mozilla Firefox Browser, you are consenting to be bound by the Agreement. If you do not agree to the terms and conditions of this Agreement, do not click the "Accept" button, and do not install or use any part of the Mozilla Firefox Browser.


During the Mozilla Firefox installation process, and at later times, you may be given the option of installing additional components from third-party software providers. The installation and use of those third-party components may be governed by additional license agreements.


1. LICENSE GRANT. The Mozilla Corporation grants you a non-exclusive license to use the executable code version of the Product. This Agreement will also govern any software upgrades provided by Mozilla that replace and/or supplement the original Product, unless such upgrades are accompanied by a separate license, in which case the terms of that license will govern.


2. TERMINATION. If you breach this Agreement your right to use the Product will terminate immediately and without notice, but all provisions of this Agreement except the License Grant (Paragraph 1) will survive termination and continue in effect. Upon termination, you must destroy all copies of the Product.


3. PROPRIETARY RIGHTS. Portions of the Product are available in source code form under the terms of the Mozilla Public License and other open source licenses (collectively, "Open Source Licenses") at http://www.mozilla.org/MPL. Nothing in this Agreement will be construed to limit any rights granted under the Open Source Licenses. Subject to the foregoing, Mozilla, for itself and on behalf of its licensors, hereby reserves all intellectual property rights in the Product, except for the rights expressly granted in this Agreement. You may not remove or alter any trademark, logo, copyright or other proprietary notice in or on the Product. This license does not grant you any right to use the trademarks, service marks or logos of Mozilla or its licensors.


4. PRIVACY POLICY. You agree to the Mozilla Firefox Privacy Policy, made available online at http://www.mozilla.com/legal/privacy/, as that policy may be changed from time to time. When Mozilla changes the policy in a material way a notice will be posted on the website at www.mozilla.com and when any change is made in the privacy policy, the updated policy will be posted at the above link. It is your responsibility to ensure that you understand the terms of the privacy policy, so you should periodically check the current version of the policy for changes.


5. WEBSITE INFORMATION SERVICES. Mozilla and its contributors, licensors and partners work to provide the most accurate and up-to-date phishing and malware information. However, they cannot guarantee that this information is comprehensive and error-free: some risky sites may not be identified, and some safe sites may be identified in error.


6. DISCLAIMER OF WARRANTY. The product is provided "as is" with all faults. To the extent permitted by law, Mozilla and Mozilla’s distributors, and licensors hereby disclaim all warranties, whether express or implied, including without limitation warranties that the product is free of defects, merchantable, fit for a particular purpose and non-infringing. You bear the entire risk as to selecting the product for your purposes and as to the quality and performance of the product. This limitation will apply notwithstanding the failure of essential purpose of any remedy. Some jurisdictions do not allow the exclusion or limitation of implied warranties, so this disclaimer may not apply to you.


7. LIMITATION OF LIABILITY. Except as required by law, Mozilla and its distributors, directors, licensors, contributors and agents (collectively, the "Mozilla Group") will not be liable for any indirect, special, incidental, consequential or exemplary damages arising out of or in any way relating to this agreement or the use of or inability to use the product, including without limitation damages for loss of goodwill, work stoppage, lost profits, loss of data, and computer failure or malfunction, even if advised of the possibility of such damages and regardless of the theory (contract, tort or otherwise) upon which such claim is based. The Mozilla Group's collective liability under this agreement will not exceed the greater of $500 (five hundred dollars) and the fees paid by you under the license (if any). Some jurisdictions do not allow the exclusion or limitation of incidental, consequential or special damages, so this exclusion and limitation may not apply to you.


8. EXPORT CONTROLS. This license is subject to all applicable export restrictions. You must comply with all export and import laws and restrictions and regulations of any United States or foreign agency or authority relating to the Product and its use.


9. U.S. GOVERNMENT END-USERS. This Product is a "commercial item," as that term is defined in 48 C.F.R. 2.101, consisting of "commercial computer software" and "commercial computer software documentation," as such terms are used in 48 C.F.R. 12.212 (Sept. 1995) and 48 C.F.R. 227.7202 (June 1995). Consistent with 48 C.F.R. 12.212, 48 C.F.R. 27.405(b)(2) (June 1998) and 48 C.F.R. 227.7202, all U.S. Government End Users acquire the Product with only those rights as set forth therein.


10. MISCELLANEOUS. (a) This Agreement constitutes the entire agreement between Mozilla and you concerning the subject matter hereof, and it may only be modified by a written amendment signed by an authorized executive of Mozilla. (b) Except to the extent applicable law, if any, provides otherwise, this Agreement will be governed by the laws of the state of California, U.S.A., excluding its conflict of law provisions. (c) This Agreement will not be governed by the United Nations Convention on Contracts for the International Sale of Goods. (d) If any part of this Agreement is held invalid or unenforceable, that part will be construed to reflect the parties' original intent, and the remaining portions will remain in full force and effect. (e) A waiver by either party of any term or condition of this Agreement or any breach thereof, in any one instance, will not waive such term or condition or any subsequent breach thereof. (f) Except as required by law, the controlling language of this Agreement is English. (g) You may assign your rights under this Agreement to any party that consents to, and agrees to be bound by, its terms; the Mozilla Corporation may assign its rights under this Agreement without condition. (h) This Agreement will be binding upon and inure to the benefit of the parties, their successors and permitted assigns.


Détrompez moi si je fais une erreur, mais il semble que cette licence ne soit pas libre.

Il me semble que ce n'est pas nouveau ... Il me semble que le seul composant qui le rendait non libre était le talkback qui permettait de remplir le bugzilla lors d'un crash. Mais il me semblait aussi qu'une alternative libre avait été développée ...

Pour quelle raison dois-je accepter un EULA non libre ?

J'ai l'impression que je vais devoir trouver un autre navigateur ... Voyons les options disponibles:
- Opera: tant qu'a avoir du non libre, autant avoir un navigateur qui cherche a implémenter les tests acid2 et acid3 ... Et ayant moins de bugs que Firefox (dans ma maigre expérience de webmaster) ... Mais non, c'est pas libre
- Bon Echo, la version libre de Firefox. Il semblerait que ce soit la meilleure alternative, cependant, cela ne me réjouit pas d'avoir une version au rabais de Firefox (avec un nom au rabais et une icône au rabais). Surtout que Firefox ne gère pas bien le défilement horizontal avec un trackpad :(
- Konqueror: Si on n'est pas sous KDE, pas la peine d'y penser. Et je n'aime pas le mélange gestionnaire de fichiers / navigateur web
- Epiphany: Le système de bookmarks n'est pas vraiment prévu pour es personnes comme moi qui ont de l'ordre du milliers de bookmarks ... Et de plus il ne retient pas bien ce que je mets dans les formulaires d'une fois sur l'autre
- Arora: semble le plus prometteur, mais encore trop jeune.

Donc. Pour le moment je n'ai pas grande idée de ce que je vais faire. Pour le moment j'utilise Arora mais il n'est vraiment pas assez mature (par exemple pas moyen de taper le caractère '/' ... sans copier/coller. C'est le raccourcis pour faire une recherche sur la page)

> Lire le journal (114 commentaires, moyenne: 3,4).

Blender 2.46 slashdotté ?

Posté le 20 mai 2008
0
Blender 2.46 est sorti, apportant toutes les améliorations développées pour le projet pêche (qui est fini et devrait bientôt être publié).

Je n'ai pas vraiment le temps de rédiger une dépêche complète et fournie, surtout que le site web semble indisponible.

Ce que je sais c'est qu'il y a plein de bonnes choses au menu, mais j'ai un peu oublié quoi. Bon, en regardant dans mon cache firefox, j'ai une liste de base (une traduction hasardeuse, merci de m'excuser):

- simulation de tissus
- Particules
- Cheveux et fourrure
- Physics Caching and Baking (?)
- Améliorations du skinning
- Modificateur de déformation de mesh
- Pole Target for IK (?)
- Amélioration des contraintes
- Amélioration sur le dessin d'armatures
- Changements dans l'éditeur d'actions
- Bibliothèques de poses (?) (Pose Libraries)
- Visualisation du weight paint et Multi Modifier
- Fonctionnalités de rendu (FSA, Zmask, Instancing)
- Fonctionnalités concernant les shaders (?) (Shading Features
- Réflection/Réfraction brillante
- Soft shadows dans le raytracer
- Échantillonage QMC
- Ambient occlusion approchée
- Décroissance de l'effet des lampes (?) (Lamp Falloff)
- Render Baking and Normal Mapping (?)
- Nouveau browser d'images
- Changements dans le séquenceur
- Éditeur d'UV
- Orientations des transformations paramétrable
- Rendu distribué et nouvelles fonctionnalités.


Notez que cette release ne contient pas les améliorations du projet abricot (projet de jeu).

La prochaine grosse release, la 2.50 (qui devrait je pense sortir après l'été) inclura de nombreux changements très intéressants, incluant une interface améliorée avec enfin la possibilité de choisir ses raccourcis clavier, et de faire du multi-écran. Elle inclura sûrement aussi les améliorations apportées lors du projet abricot.

Un lien vers un article en français: http://blenderclan.tuxfamily.org/html/modules/news/article.p(...)

Si quelqu'un veut faire une dépêche plus détaillée, ce sera avec joie. Je n'ai personnellement pas le temps.

http://www.blender.org

> Lire le journal (7 commentaires, moyenne: 3).

Widgets pour questionnaire en ligne

Posté le 16 mai 2008
0
Bonsoir,

J'ai développé dernièrement un système de widgets pour questionnaire en ligne ... Le tout en PHP5 (parce que chez free, on n'a pas mieux). Ce système gère lui-même les erreurs de saisie dans le formulaire et différents types de widget. Parmi les widgets, on a:
- des listes d'éléments avec possibilité d'un choix "autre"
- des zones de textes longues ou courtes
- des boutons radio
- des cases a cocher
- des listes à choix multiples

Les widgets gèrent eux-même la validation des données, l'enregistrement des données en base de donnée, l'affichage d'une valeur par défaut et l'affichage des erreurs.

Les widgets peuvent aussi sauvegarder en base de donnée les réponses "autre" donnée pour les afficher ensuite dans les choix possibles les fois suivantes.

La mise en oeuvre du système est très simple: on commence par instancier le widget qu'on veut afficher, on lui associe un label (un texte explicatif correspondant généralement à la balise en HTML) et on l'affiche le plus simplement du monde. Cela donne en gros :

$widget = new WidgetXyz("name", "id", $session_id);
$label = new Label($widget, "texte");
?>
...
printHtmlCode(); ?>


Le principal interêt est que tout est fait automatiquement.



Je dois l'avouer, la rédaction de ce journal n'est pas complètement désintéressée, j'aimerais bien en effet que vous répondiez à mon questionnaire que j'ai créé pour un cours de Marketing (ce n'est pas tellement ma matière préférée ...).

Il s'agit de faire une étude de marché sur un concept de film intéractif sur le développement durable. Ce projet fait partie d'un plus grand projet: le projet 45e parallèle. Il regroupe plusieurs villes autour du 45e parallèle nord et sud qui souhaitent mettre en commun leur bonnes pratiques sur le développement durable. Pour ce qui me concerne, c'est la ville de Valence (et des villes autour) qui est concernée.

Si vous voulez y répondre (ça m'arrangerait vraiment) tout est très bien expliqué ici (du moins j'espère, dites moi si il y a des problèmes):
http://esisar.mb350.eis2g3.free.fr/film/intro.html

NOTE IMPORTANTE: si vous voulez juste tester l'application, merci d'utiliser directement ce lien (cela m'évitera d'avoir une base de donnée polluée avec des réponses fausses):
http://esisar.mb350.eis2g3.free.fr/film/form.php5
merci


Si vous voulez voir le code source de tout le système, il est disponible à cette adresse:
http://esisar.mb350.eis2g3.free.fr/film/src.html



Merci de votre attention
Mildred

> Lire le journal (8 commentaires, moyenne: 1,9).

Un moteur de jeu 3D avec un SDk libre

Posté le 01 mai 2008
0
Bonsoir,

Je viens juste de tomber sur le projet WorldForge: http://worldforge.org/doc/about

Ce projet consiste a créer un environnement de développement permettant de créer facilement différents jeux 3D.

Peut être que vous conaissez déjà, mais pour moi, cela a été une grande découverte. J'ai longtemps cherché des logiciels me permettant de créer un monde 3D facilement. La plupart de ce que j'avais pu trouver était soit:
- propriétaire
- pour Windows seulement (ou difficile a compiler pour Linux)
- sans facilité pour créer des maps (un éditeur quoi)
- des limitations que je trouvaient inacceptables (par exemple: un langage de script ne pouvant pas être sandboxé)

En même temps, je viens juste de découvrir. je serait peut être déçue. Mais il semble que les buts du projets donneront quelque chose d'intéressant à long terme. Je cite:

« We are committed to producing our dreams »

Je vous laisse découvrir.

Pour ceux qui voudraient défendre un autre moteur, voici ce que je trouve à la concurrence:
- Ogre: est utilisé par WorldForge. N'est qu'un moteur graphique
- CrystalSpace: pas de langage de script sandboxable, trop complexe
- irrlicht: Limite Open Source. Éditeur de maps irrEdit pour Windows uniquement et propriétaire
- Blender Game Engine: Limité
- ca3d engine: pas OpenSource du tout (même si le site laisse planer le doute)
- Delta3D: Beaucoup trop de dépendances (packager le tout est une horreur)

> Lire le journal (5 commentaires, moyenne: 2,6).

Atheros veut être compatible avec Linux

Posté le 28 avril 2008
0
Bonsoir,

Athreos fabrique des cartes wifi, et était jusqu'a présent supporté par le projet Madwifi¹. Ce projet comportant de nombreuses parties libres, mais il restait un point noir : le HAL, un code objet fermé (bien qu'indépendant du kernel, c'était le même code pour BSD et Linux).

Un HAL libre avait été en projet, mais d'après ce que je sais, il n'était pas très développé. Dernièrement, le projet madwifi a complètement été abandonné pour donner (pour Linux au moins) le driver ath5k². On en avait d'ailleurs parlé ici même³ en septembre dernier lorsque le projet OpenBSD avait repris le code du driver, et changer la licence trop vite.

Le 16 avil dernier, Luis R. Rodriguez a posté sur la liste ath5k-devel un message⁴ que je cite:

Good news. I write to you to inform you that I have decided to join Atheros as a full time employee, as a Software Engineer, to help them with their goals and mission to get every device of Atheros supported upstream in the Linux kernel. I realize there are a lot of challenges ahead but I am well aware of the how the community works and the benefits of working with it and am confident we will find ways to strengthen the relationship between Atheros and the community. I also realize there are a lot of pending questions and perhaps even more now. Please rest assured we are doing what we can to work together as soon as possible.

Si on traduit, cela donne:

Bonne nouvelles. Je vous écrit pour vous informer que j'ai décidé de me faire employer chez Atheros à plein temps comme ingénieur logiciel pour les aider dans leur mission consistant a ce que tous leurs produits soient supportés dans le kernel linux vanilla. Je me rends compte qu'il y a beaucoup de défis qui m'attendent, mais je suis bien au courant de comment la communauté fonctionne et des bienfaits à travailler ensemble, et j'ai confiance que nous trouverons un moyen de consolider la relation entre Atheros at la communauté. je me rend aussi compte qu'il y a beaucoup de questions attendant une réponse, et peut être encore plus à présent. Et restez assuré que nous faisons tout ce qui est possible pour pouvoir travailler ensemble aussi tôt que possible.

Ce qui est intéressant de noter, c'est que Atheros s'inquiète a ce que son métériel soit supporté dans le kernel vanilla. Donc cela eut dire que bientôt, on aura peut être plein de chipset atheros bien supportés dans le kernel sans avoir a rien faire.

On peut penser que cela est du entre autre a l'émergence de périphériques ultraportables comme le eeePc qui sont livrés avec Linux par défaut.

Il reste a espérer que les développeurs OpenBSD auront l'opportunité d'utiliser le code sans trop de problèmes. Soit parce qu'il sera bien documenté, soit parce que la licence leur permettra de le reprendre intégralement.

Sinon, je suis cela d'assez loin, donc je ne peux pas trop vous en dire plus. je ne peux pas non plus vous dire qui est Luis R. Rodriguez, si ce n'est u'il travaille depuis le début sur ath5k

Et merci d'excuser les éventuelles erreurs, il se fait tard :)

Mildred

¹ http://madwifi.org
² http://madwifi.org/wiki/About/ath5k
³ http://linuxfr.org/~IsNotGood/25195.html et http://linuxfr.org/~nicOnicO/25285.html
https://lists.ath5k.org/pipermail/ath5k-devel/2008-April/000(...)

> Lire le journal (48 commentaires, moyenne: 3,5).

Liens symboliques persistants ??? Idée de workflow pour les e-mails.

Posté le 24 mars 2008
0
Bonsoir,

J'aimerais savoir si vous conaissez des projets visant a avoir des liens symboliques qui résistent au déplacement de leur cible ... A mon avis, c'est un point important qu'il est intéressant de développer.

Je sais que MacOS les implémentent ... Sans doute que Windows va bientôt s'y mettre (si ce n'est pas déjà fait).



L'interêt ? par exemple: pouvoir garder une trace des fichiers même si ils sont déplacés par l'utilisateur.

Mon but serait de créer un client mail qui fonctionnerait de la manière suivante:
- a l'arrivée de nouveaux messages, ils sont placés dans une mailbox définie (par exemple dans ~/Inbox/mails.mbox) ... d'éventuels filtres pourraient les mettre à un autre endroit.
- si un mail reçu contient une référence a un mail déjà reçu ou envoyé, le mail est placé dans la même mailbox que le mail qu'il cite. En cas de doutes, il est laissé dans inbox.
- l'utilisateur peut ouvrir une mailbox et voir son contenu. Déplacer un mail qu'il contient dans le système de fichiers (cela crée un fichier mbox avec un seul mail ... portant le nom du mail). L'utilisateur peut déplacer ses messages d'une mbox a l'autre
- la logiciel permettant de visualiser le contenu d'une mailbox aurait une barre latérale a gauche se souvenant des dernières mailboxes ouvertes par l'utilisateur. Il y aurait aussi des bookmarks de mailbox

Cette application nécessite de se souvenir des emplacements des mailboxes pour: savoir dans quel mailbox placer une réponse, afficher les dernières mailboxes ouvertes, garder des bookmarks de mailbox.

Pour le moment je n'ai pas encore écrit une seule ligne de cette application (je n'ai pas encore trouvé un couple langage/toolkit convenable).

> Lire le journal (35 commentaires, moyenne: 2,8).

les spams légaux ?

Posté le 14 décembre 2007
0
Bonsoir,

Depuis quelque temps je me met à recevoir des spams qui contiennent le texte suivant (par exemple):

En vertu de la loi n78-17 du 6 janvier 1978, vous disposez d'un droit d'accès et de rectification des donnes vous concernant ainsi qu'un droit d'opposition que vous pouvez faire valoir tout moment. Pour cela si vous ne souhaitez plus recevoir de mails de notre part veuillez : Cliquez ici


Par contre, je ne connais du tout ceux qui m'envoient ce message ... Et ca a tout l'air d'être du SPAM :(

Une fois j'ai même téléphonné a un tel spammeur qui me répliquait que c'était légal si il était possible de se désinscrire. mais moi je crois plutôt qu'ils devraient me demander avant ... je me trompe ?

je trouve ça quand même aberrant. Qu'en pensez-vous ?

> Lire le journal (29 commentaires, moyenne: 2,7).

Problèmes d'installation des logiciels : paquets sources ?

Posté le 09 décembre 2007
0
Bonsoir,

Une problématique que je trouve importante pour nos bureaux libres concerne à mon avis l'installation des logiciels tiers. Pourquoi donc me dites-vous ? C'est vrqi, nous avons quand même les packages qui sont vraiment pratiques. Cependant ...

je ne remet pas en cause les packages, au contraire. Ils sont vraiment une pièce maîtresse du système. Cependant, ils ne nous permettent que d'installer des logiciels spécifiquement pour la distribution qu'on a installé. Et les logiciels non packagés ... tant pis pour nous.

la solution qui nous reste, c'est quoi ? 0install, klik, autopackage, compilation à la main dans /usr/local ? Certaines de ces solutions ont l'air intéressantes ... mais il y a la aussi le problème de la limite du nombre de logiciels packagés. Et pour la compilation à la main dans /usr/local, elle présente deux inconvénients majeurs:
- ce n'est pas intégré au système de paquets
- il faut un certain niveau pour être capable de compiler soi même des tarball sources. Surtout si des problèmes surviennent pendant la compilation.

Une autre solution qu'on trouve dans la distribution ArchLinux, c'est AUR, c'est un repository de scripts qui peuvent automatiquement télécharger la source depuis Internet et créer un paquet ArchLinux. Un grand avantage c'est que c'est partagé, donc il est du coup possible à n'importe qui de packager le soft qu'il veut et le proposer aux autres.

Un tel script (appelé PKGBUILD) est très simple, c'est en fait un script shell qui a la structure suivante:


pkgname=...
pkgver=...
...
makedepends=(make gcc ...)
depends=(glibc ...)
source=(http://.../${pkgname}-${pkgver}.tar.gz)

build(){
cd "$startdir/src/$pkgname-$pkgver"
./congifure --prefix=/usr && make && make DESTDIR="$startdir/pkg" install
}


Comme vous le voyez, n'importe qui qui est capable de compiler un logiciel dans /usr/local peut faire un PKGBUILD et pour le coup intégrer son logiciel correctement à la distribution.

Quelque chose d'encore mieux, il existe un logiciel appelé yaourt qui permet en une seule ligne de compiler un logiciel à partir des PKGBUILD sur AUR en même temps que ses dépendances, un peu comme portage sur gentoo. Vraiment génial.

Seulement, si tout était aussi bien, ... En fait j'ai décidé il y a peu d'abandonner ArchLinux au profit de Fedora 8. Pourquoi ? Tout simplement parce qu'ArchLinux est une distribution pour utilisateurs expérimentés ... Et je fesait un peu trop d'administration système à mon goût. Je voulais quelque chose d'un peu mieux, et lorsqu'on regarde des projets de Fedora comme ceux-ci, ca donne envie:
- http://fedoraproject.org/wiki/Features/OneSecondX
- http://fedoraproject.org/wiki/Features/RandrSupport
- http://fedoraproject.org/wiki/Releases/FeatureBetterStartup
- http://fedoraproject.org/wiki/Features/FedoraElectronicLab
- http://fedoraproject.org/wiki/Features/EFI

Donc me voila sous Fedora ... C'est très bien, j'ai un boot graphique avec X11, l'administration est facilitée par les nombreuses petites applications qui évitent de toucher aux fichiers de configuration. Il y a aussi l'exclusion par défaut des paquets de développement qui permettent de réduire la place occupée par l'OS de manière non négligable. Mais, je me rend compte que Fedora contient beaucoup moins de packages que n'avais ArchLinux.
Peu importe me dis-je, je vais faire des paquets RPM ... Et je cherche sur le web comment faire des spec file et comment les transformer en paquets RPM. Ce n'est pas forcément plus compliqué mais il y a certaines différences:
- il est très facile de faire des fichiers spec qui s'installent sur le système. Il faut faire attention à bien définir BuildRoot.
- les sources ne se téléchargent pas toute seules
- comment faire des spec file qui téléchargent de repositories svn ??? je ne sais pas
- pas d'outil comme yaourt qui permet d'installer facilement plein de spec files à la fois
- pas de repository de spec file où on pourrait partager.

Pour toutes ces raisons, je trouve la vie difficile avec Fedora, même si cette distribution a de nombreux avantages, j'envisage de revenir à ArchLinux ... Mais j'aimerais bien rester avec Fedora.



Tout le but de mon long discours, c'était pour proposer une nouvelle manière de voir le problème de l'installation des logiciels sous GNU/Linux. A mon avis, toutes les distributions gagneraient à intégrer un système comme AUR ou n'importe quel utilisateur peut proposer un script pour compiler automatiquement un paquet qui ne serait pas fourni de base. Un peu comme gentoo, mais avec les paquets binaires en plus.

Vous avez des remarques à faire ...? Des suggestions sur les endroits où je pourrais poster mes idées ?

Mildred

> Lire le journal (79 commentaires, moyenne: 2,4).

Blender et Crystal Space : Projet Abricot

Posté le 09 décembre 2007
0
Blender vient de lancer le projet Abricot¹ (en fait le 2 décembre) et il est possible comme avec Orange et Pêche de pré-commander les DVD. Abricot va être réalisé en utilisant Blender² et Crystal Space³ en réutilisant ce qu'a déjà réalisé le projet Pêche. Ça commence en Février.

Vous pouvez pré-commander le DVD⁴ pour 34¤ qui contiendra bien sûr toutes les sources du jeu (code et artwork). Vous pourrez alors être listé dans les crédits de Blender ou CrystalSpace au choix.

Si quelqu'un se sent de faire une dépêche ... Je n'ai pas le temps pour ça.

¹ http://apricot.blender.org/
¹ http://www.blender.org/blenderorg/blender-foundation/apricot(...)
² http://www.blender.org/
³ http://www.crystalspace3d.org/
http://www.blender3d.org/e-shop/product_info.php?products_id(...)

> Lire le journal (24 commentaires, moyenne: 4,4).

Un meilleur shell

Posté le 08 novembre 2007
0
Bonjour,

Je vais vous parler d'un sujet qui m'intéresse, le shell. A mon avis le shell actuel qu'on a sur nos machines (souvent bash) a deux gros problèmes, et j'aimerais bien ouvrir une discussion là dessus à l'occasion d'un développement récent que j'ai fait.

1. L'expansion des variables

Tout d'abord, le premier problème du shell sh ou compatible est à mon avis, outre sa syntaxe parfois bizarre, le problème de l'expansion des variables. Pour justifier mes griefs sur la syntaxe, je dirais simplement que je ne vois pas pourquoi les routines sont délimitées par des { } et pas les constructions if/for/case, pourquoi le if se termine par fi, le case par esac et le for/while par done et non pas rof/elihw.

penchons-nous sur le problème de l'expansion des variables. Le problème c'est que le shell découpe les mots après l'expansion des variables, c'est à dire que :
var="mot1 mot2"
cmd a b${var}c d

est équivalent à :
cmd a bmot1 mot2c d
et non pas :
cmd a "bmot1 mot2c" d

Alors que dans le code source on ne voit que 3 arguments passés à la commande cmd (a, b${var}c, d), il y en a en fait réellement 4 (a, b$mot1, mot2c, d).

Ce comportement peut être désirable dans certains cas, mais parfois vraiment malvenu. Par exemple lorsqu'on manipule des noms de fichiers contenant des espaces. En gros cela impose lorsqu'on ne sait pas précisément ce qu'il y a dans la variable à toujours l'entourer de quotes, c'est à dire écrire "$var" au lieu de $var.

Non seulement les débutants qui commencent ne comprennent pas toujours cette subtilité et oublient les quotes, mais bien souvent aussi, des gens expérimentés les oublient en les pensant inutiles.

Un exemple concret. la distribution ArchLinux utilise des script bash pour compiler les logiciels et créer des paquets, on les appelle PKGBUILD (un peu similaires aux ebuilds de gentoo). L'exemple le plus courrant et qui sert de modèle à tous les PKGBUILD est¹:


build() {
cd $startdir/src/$pkgname-$pkgver
./configure --prefix=/usr
make || return 1
make prefix=$startdir/pkg/usr install
}


$startdir est le dossier dans lequel les sources se trouvent, et où les fichiers sont installés.

Ici on peut voir que $startdir n'est jamais entre quotes, c'est à dire qu'il est impossible de compiler un package si le chemin courrant contient des espaces !!! En effet, la première commande (cd) échoue déjà car au moins deux arguments lui sont passés en paramètres.

C'est ma première critique concernant la robustesse des script shell.

2. La lenteur

Bash, c'est lent. On le voit avec les script d'init, et je l'ai remarqué plus récamment en remplaçant mon script monolithique ~/.xsession par de nombreux scripts modulaires qui me permet à chaque démarrage de:
- me demander mon mot de passe ssh
- lancer quelques programmes comme xbindkeys, mpd
- demander quelle session lancer (E17, GNOME, KDE, Terminal ...)

Et je constate facilement que c'est lent.

Je sais bien que si on veut faire quelque chose de rapide, on utilise plus quelque chose comme python que bash, mais le shell a tout de même l'avantage de pouvoir facilement lancer des applications tierces facilement, éventuellement de manière asynchrone, en modifiant l'environnement, et en redirigeant les entrées/sorties. Si on veut faire la même chose avec un langage classique, je pense que c'est d'un coup moins facile (si on omet la fonction system() qui utilise d'ailleurs le shell).

Sans compter des projets complexe entèrement programmés en bash. Par exemple le gestionnaire de paquets de Nasgaïa est comme ça (ca a peut être changé depuis). Et ne serait-ce qu'afficher l'aide prend un temps fou.

je me demande alors dans quelle mesure (et je vous pose la question) il ne serait pas intéressant d'avoir un interpréteur shell (type sh ou autre) constamment chargé en mémoire qui pourrait rapidement exécuter n'importe quel script. Bien entandu une attention particulière doit être portée à la sécurité.

3. mon code

je vois ai dit que j'avais codé quelque chose, mais quoi ? J'ai commencé un shell basé sur le langage jam². Jam est un remplaçant à make(1) et possède un langage de script qui a les facultés suivantes :

- les variables ne contiennent pas une seule valeur, mais des listes de chaînes de caractères.
- lors de l'expansion des variables est le produit de tous les termes. Pour illustrer cela, je prend juste l'exemple donné dans la documentation³:

$(X) -> a b c
t$(X) -> ta tb tc
$(X).txt -> az bz cz
$(X)-$(X) -> a-a a-b a-c b-a b-b b-c c-a c-b c-c


- la ponctuation n'est pas reconnue si elle n'est pas entourée d'espaces. Cela permet d'avoir de la ponctuation sans problèmes à l'intérieur des mots.

Ce que j'ai fait à partir de ça, c'est relativement simple. J'ai supprimé toute la partie qui s'occupait de la compilation, de la gestion des dépendances entre les cibles, pour ne garder que le langage Jam et faire en sourte que si une fonction n'est pas reconnue de manière interne par Jam, le programme correspondant dans le $PATH soit exécuté. Et cela n'a pris que quelques heures.

Mon code est disponnible sur launchpad⁴ et si cela vous intéresse, plus de détails dans mon e-mais sur la mailing list de jam⁵.

Des remarques ?

¹ http://wiki.archlinux.org/index.php/ABS_-_The_Arch_Build_Sys(...)
² http://freetype.sourceforge.net/jam/index.html
³ http://public.perforce.com/public/jam/src/Jam.html
https://code.launchpad.net/~mildred/+junk/jam-shell
http://maillist.perforce.com/pipermail/jamming/2007-November(...)

> Lire le journal (36 commentaires, moyenne: 3,2).

Comment vous sauvegardez ?

Posté le 07 octobre 2007
0
Bonsoir,

Cher lecteur, j'aimerais te demander comment tu fais tes sauvegardes ... En effet, je me pose des questions sur ce sujet. On répete toujours qu'il faut faire des sauvegardes, mais pour moi, c'est loin d'être aussi évident, car je ne vois aucune solution abordable qui soit adaptée.

Que trouve-t-on ?

* Les CD/DVD, pas mal, un stokage suffisant pour stoker nos documents (pas de possibilité de stoker une partition complète par contre). Problème principal: avec le temps, le support se dégrade et on finira sans doute par perdre des données (je n'arrive déjà plus à lire certains de mes vieux CD gravés)

* DVD-RAM: un peu mieux que les DVD classiques question pérénnité des données, mais un peu chers et pas plus contenant que ces derniers. De plus le graveur DVD de mon portable ne les comprend pas.

* Disque dur: Pourquoi pas mais c'est cher, je trouve, et surtout il est impossible d'avoir plus contenant sans racheter un disque complet. De plus un disque peut toujours tomber en panne et il faut se munir de RAID (il me semble, je ne connais pas trop) pour ne pas trop risquer de perdre ses données. Cela veut dire acheter deux disques au lieu d'un seul :(

Question moyens de sauvegarde accessibles à tout le monde, je ne vois pas plus. Après, il existe des machines qui permettent d'enregistrer les données sur des bandes magnétiques. La bande en elle même ne coûte pas cher pour ce qu'elle peut contenir (plusieurs centaines de GB pour ce que j'ai pu voir). Le seul problème c'est le prix et la taille de la machinne en question. Et je n'ai pas pu trouver des solutions plus modestes.

Alors je te questionne, toi lecteur, comment tu fais pour faire des sauvegardes ? Pour le moment je n'en fais pas vraimment mais en fait, j'aimerais assurer mes données. Pour le moment elles sont dupliqu"es sur deux ordinateurs, donc sur deux disques durs. Mais je ne peux pas tout faire ainsi.

J'ai aussi envie de sauvegarder ma partition système, en effet, cela me permettrait de tester d'autres distributions sur mon portable. Et l'absence d'espace disque m'en empêche.

Merci

> Lire le journal (50 commentaires, moyenne: 2,2).

myip.fr: le pire des FAI !

Posté le 23 septembre 2007
0
Bonsoir,

Je vais vous écrire ce soit pour vous faire part de ma déception concernant mon fournisseur d'acces: myip.fr.

Cette année j'ai déménagé dans une résidence étudiante, et là, pour avoir Internet, il est conseillé d'utiliser ce fabuleux fournisseur d'accès. L'offre est correcte, je trouve. pour 25¤ par mois on a Internet, et pour 30¤ on a en plus le téléphone illimité pour les fixes.

Mais tout n'est pas si rose. En effet, la boîte (*box) qu'on me fournit me filtre tout les ports en entrée. Vous allez me dire que c'est courant et qu'on a la même chose avec les freebox (et autres que je connais moins). Certes, mais ici, aucun moyen de configurer des redirections de port.

mais le plus gênant, c'est que certaines connexions sont redirigés vers d'autres destinations. C'est ainsi que la connexion sur news.gmane.org:119 aboutit directement sur news.tiscali.fr !!!!!

Et il en est de même pour le port SMTP qui aboutit sur mwinf2554.orange.fr.

En fait, on peut ouvrir une connexion n'importe ou sur les ports 25 et 119, on tombera toujours au même endroit, et pas où on veut ! C'est complètement aberrant.

hereusement pour gmane, il est possible de se connecter en sécurisé sur un autre port, mais ce n'est pas le cas avec tous les serveurs de news, comme zoo-logique.org qui contient un forum très intéressant sur Blender ... et d'autres serveurs :/

Mais comment peuvent-ils se prétendre être un FAI, Pour moi, la connectivité Internet, c'est la connectivité au niveau du protocole IP.


Ensuite, concernant le téléphone, il n'y a aucun moyen d'appeler des portables. On pourrait s'attendre à avoir un tarif à la minute, mais non, c'est tout bonnement impossible. Dommage :(


Donc si un jour vous enandez parler de myip, fuyez-les comme la peste. Et demain je tenterai de les appeler pour leur demander si il n' a pas moyen de débloquer leur service. Et si ce n'est pas possible, je me rabattrait sur un autre FAI, si encore c'est possible. J'ai entandu parler que myip pourrait avoir le monopole dans la résidence :(

Sur ces mots, bonne nuit
Mildred

> Lire le journal (20 commentaires, moyenne: 4,3).

Temps de démarrage: Mac OS X contre Linux

Posté le 20 septembre 2007
0
Bonsoir,

Mon ordinateur est un MacBook et je dispose donc à la fois de Mac OS X (que je n'utilise pratiquement pas) et GNU/Linux, c'est à dire la distribution ArchLinux personnalisée pour utiliser upstart à la place du system init standard.

Première constatation, Mac OS X démarre très rapidement et Linux beaucoup plus lentement. Voici mes quelques mesures:

Entre rEFIt et le prompt de login Mac OS X, il se passe eactement 15 secondes.

maintenant, coté Linux, rEFIt passe à la main à un GRUB (avec un timeout de 5 secondes) ... ce qui ralonge le démarrage. Mais finalement pas tant que ça :

À partir du moment où GRUB démarre linux et le moment ou je peux voir le curseur de la souris Xorg (j'utilise l'autologin GDM), il se passe environ 50 secondes, c'est à dire beaucoup plus que Mac OS X.
Plus finement, j'ai remarqué que entre le moment ou GRUB passe la main au kernel (écran noir) et le moment ou je vois le début de l'affichage de l'init, il se passe 10 secondes.
Et entre le moment où l'écran commence à clignotter et le moment où j'ai un curseur de souris, il se passe aussi 10 secondes.
J'en déduis donc qu'il y a 30 secondes au milieu pour l'init normal. Mais cela comprend aussi le temps (je dirais à vue de nez au moins 5 secondes) entre le moment où je démarre Xorg (via GDM) et le moment où je commence à voir l'écran clignotter.

Finalement je constate que GNU/Linux démarre très lentement. Est-ce à cause de mon kernel ? De mon initrd ? De mon adaptation de upstart qui est foireuse ? De mon driver intel provenant de Xorg 7.3 ?

J'ai tout de même l'impression qu'on pourrait faire mieux. Et je trouve étonnant que le kernel mette tant de temps à démarrer. De même pour Xorg. 15 secondes pour démarrer Xorg c'est à mon avis beaucoup trop.

Qu'en pensez-vous ?

> Lire le journal (62 commentaires, moyenne: 2,9).

Détection du format de fichier, ma solution à implémenter

Posté le 01 juillet 2007
0
Attention, anglais à l'intérieur.

Suite a mon précédant journal [http://linuxfr.org/~mildred/24648.html], j'ai pensé que je devais faire quelque chose. J'ai donc imaginé un spécification qui décrit un fichier qui contiendrait à la fois des méta-données sur un fichier, et le fichier en lui même. Il est aussi possible de séparer les deux parties.

Pour rappel, les magic numbers sont une chose formidable pour détecter le type d'un fichier, mais c'est insuffisant car :
- plusieurs types de fichiers différents peuvent avoir le même magic number (archives ZIP, JAR, OpenDocument)
- les fichiers texte ne contiennent en général pas de magic number (sauf les scripts avec la fameux #!, mais c'est uneexception)

Et les extensions de fichiers, bien que très pratique dans certains cas et qu'il faut continuer à utiliser dans certains domaines comme la programmation, ne sont pas non plus une solution idéale car elles se mélangent avec le nom du fichier alors que cela n'a rien à voir.

ma solution consiste donc proposer une spécification pour un fichier desc (joli non n'est-ce pas ?). Avant de la poster par exemple sur freedesktop.org (il faudra que je voie comment) j'aimerais vous la soumettre afin que vous puissiez me dire si :
- une spécification existante ne fait pas double usage
- des choses sont a améliorer.

Je l'ai fait en anglais car c'est pour la diffuser. Cependant je n'ai pas encore relu mon anglais, il peut donc y avoir beaucoup d'erreurs, excusez-cela par avence.


La spec:

Desc file format
Created Sunday 01/07/2007

This document describe the desc file format. This file aims at describind another file, especially during transfers like attachements in e-mail or any other kind of transfert. This has been made by Mildred <mildred593(at)online.fr> who was inspired bu the application/applefile files attached by Apple Mail. Maybe another file format is standardized with the same goal, this document is only a draft and presents an idea.

This is the draft number 1 of this specification released the 1st of July 2007.

Description

The desc file includes description for a file that can be included or not. If the file is included the content type is application/descfile. If the file is not included the content type can also be text/descfile.

The frst part of the file is always presend and is textual data. It is called the headers. There must not be any single white line in the body and the first white line begins the second part, that is the included file.

The headers part

The headers host metadata about the file. It is composed of multiples physical lines separated by the character LF (\n). It finnishes when two LF characters are found or at the end of the file. So blank lines are not authorized.

Logical lines are defines. A logical line is generally the same as a physical line except when multiples physical lines are used inside a singlo logical line. A logical line is composed of a finite positive and non null number of physical lines. The first physical line included must not begin by a whitespace character (defined as the ASCII space or the ASCII tabulation \t) and the following physical lines must begin with a whitespace.

The complete header is then split into logical lines except when the first lines of the headers starts with a whitespace character. These first lines are then completely ignored.

Each logical line must be either a header or a comment. The logical line include the line feeds between the physical lines that compose it but do not include the last line feed.

A Comment

A comment is a logical line that starts wth the character '#'. It is completely ignored. Note that comments are logical lines so they can span across multiple physical lines.

A Header

A header is a line that starts with a header name and continue with a content. The header name must contains only characters from A to Z, from a to z, from 0 to 9, the character '-' and the character '.'. The header name and the content are separated by a colon ':' followed by optional whitespaces characters (space or tabulation) that are not part of the content.

The content can span across multiple physical lines. The content is defined as the binary data from the first non whitespace character after the colon following the header name until the end of te logical line.

We can also define the stripped content that is the same as the content except that the first whitespace character after any line feed is removed.

The included file part

The included file part is optional and is defines as the binary data that follow the first occurence of two LF characters.

Valid files

A desc file is valid only if it matches the description given above and if all the headers are valid and if all required headers are present.

A header is valid only if either :
• The name is described as a valid name and the content matches the description given
• The name begins with "X-" or "x-"
• The name contains dots (.)

if a header specifies that is must be present only once that means that if the headers is present more than once, the file is invalid.

Valid headers

The valid headers are described below :

Version
This header is not required. It defines the version of the file specification that must be followed. if not present, the version of the specification that should be taken is the version 1.0 or the latest draft if the version 1.0 of this specification does not exists. This header must be present only once.

Filename
This header is required only if the desc file does not hold the included file part. it contains a relative path to the filename that the desc file describes. The path is relative to the desc file location. This header must be present only once.

Content-Type
The Content-Type header is case-insensitive and holds the content-type of the file described. This header must be present only once and is not required.

Examples of desc files


Content-Type: text/plain; encoding=utf-8

This is a text file
encoded in UTF-8
Here the desc file is useful because it can specify the encoding of the text file


Example of uses

The desc file may be used to transfert metadata along with a file in a protocol when this is not usually permitted. For example we can imagine a mail client that will create a desc file for each attached file in an electronic mail. The desc file will host metadata and will reference the file with its name using the Filename header.

it can also be useful to store files and keep informations such as their content-type on filesystems that do not store this information.

We can imagine that on such systems, applications can open desc files and read the included content. So it would be possible to store files and not loose any metadata such as the content type. Thus not being forced to rely on magic numbers (note that magic numbers are not always relyable, for example with test files or ZIP files that can be also Jar archives or openDocuments).

> Lire le journal (74 commentaires, moyenne: 2,3).

En finir avec libmagic

Posté le 09 juin 2007
0
Ou la difficulté de connaître le type d'un fichier

Ce qui existe actuellement

Je ne vais pas parler de Mac OS qui est en avance sur ce point là mais juste regarder ce qui est a présent utilisé sur nos bureaux libres et moins libres comme Windows :

D'abord il y a l'ignoble extension accolée au nom du fichier. L'avantage indéniable de cette solution c'est qu'elle est facile a mettre ne oeuvre et qu'il est facile de modifier l'extension, .doc le type, du fichier. Mais cela pose aussi plusieurs problèmes :
- Ce n'est pas très élégant. Pensez ce que vous voulez mais pour moi un nom de fichier ne doit pas contenir d'autres méta-données. Que pensez vous de stoker en plus la date de modification dans le nom du fichier ?
- Ce n'est pas assez pour identifier un type de fichier, surtout si on se limite à l'extension à 3 lettres.
- Il est trop facile de modifier l'extension par mégarde sans qu'on le veuille. Pour des utilisateurs novices cela peut poser un problème évident.

Une autre solution qui évite pas mal ces problèmes c'est le nombre magique (magic number) au début du fichier. C'est très bien mais :
- Certains formats de fichiers (comme le format texte) ne possèdent pas cette information.
- Certains formats de fichiers peuvent être détectés comme d'un autre format. Par exemple un fichier Open Document est en fait une archive ZIP. Son nombre magique est celui d'une archive ZIP et sera incorrectement vu comme une archive ZIP.
Même si cette solution est meilleure, ce n'est pas encore ça car ses limites nous force a continuer d'utiliser les extensions de fichiers.

Mais de meilleures solutions existent

Ah ? Quelles sont-elles ?

Mac OS qui depuis bien longtemps déjà nous fournit une interface utilisateur conviviale avait utilisé le système OSType. Cette information détermine le type de fichier de manière cependant limitée. C'est pour cela qu'elle a été depuis abandonnée.

On connaît aussi très bien le type MIME souvent associé aux e-mails et de la forme type/subtype (comme text/plain). Cette méthode est l'une des meilleures et aussi très utilisée sur Internet. Mais cependant a de petits inconvénients comme le manque de standardisation des types mime (pour les types qui ne sont pas enregistrés auprès de l'IANA)

Apple comprenant les critiques de ses utilisateurs concernant l'utilisation des extensions a décidé (depuis Mac OS 10.3) d'utiliser un système alternatif : UTI (Uniform Type Identifier).
Ce système a l'avantage de limiter les collisions avec l'utilisation de la notation DNS inversée. Ainsi par exemple une image PNG aura le type public.png et une image PICT aura le type com.apple. Ce
Chaque type peut aussi hériter d'un ou plusieurs autres types permettant ainsi une grande flexibilité (ce que ne propose pas le type MIME). Ainsi un fichier JAR de type com.sun.java-archive hérite entre autre de public.archive.

Mais pourquoi ne les utilise-t-on pas ?

Le principal problème c'est que l'information sur le type du fichier doit aller dans les méta-données et que traditionnellement, sauf pour quelques systèmes, le type du fichier n'y est pas inclus. Ce plus cela implique de fournir le type de fichier lors des transferts de fichiers. Ce problème est en partie résolu par l'utilisation extensive du type MIME dans beaucoup de protocoles.

Cependant, la plupart des systèmes de fichiers actuels supportent l'utilisation d'attributs étendus. Alors que reste-t-il pour nous empêcher ?

Même si cela est possible, cela reste a standardiser pour que cela soit utilisable. Pour le moment les bureaux libres ne considèrent pas ce problème. GNOME et KDE (pour ne prendre que les deux les plus considérés) utilisent les nombres magiques doublés de l'extension du fichier pour lever les ambiguïtés. Mais cela n'est pas toujours pratique.

Ainsi par exemple, si on cherche à ouvrir un fichier avec nautilus, et que ce fichier a un nombre magique qui contredit l'extension, une boîte de dialogue nous informe qu'on ne peux ouvrir le fichier (pour des raisons de sécurité). Ces cas peuvent facilement se produire lorsque par exemple un format de fichier consiste en un des données gzippées.

Qu peut-on faire ?

Je ne sais pas, j'invite tout le monde qui a de bonnes idées a les proposer. L'idéal serait que freedesktop.org nous propose un format standard (de préférence utilisant des standards existants) qu'il soit possible d'inclure dans les attributs étendus, et qu'il soit développé des outils en ligne de commande (et aussi pour nautilus, konqueror, thunar, rox, ...) pour facilement voir et modifier cette information.

Mais je n'ai malheureusement rien vu de tel.

Et vous, qu'en pensez-vous ?

liens

http://www.gnome.org/learn/users-guide/latest/nautilus-open-(...)
http://developers.sun.com/solaris/articles/integrating_gnome(...)
http://developer.kde.org/documentation/library/kdeqt/kde3arc(...)
http://en.wikipedia.org/wiki/File_format#Identifying_the_typ(...)
http://en.wikipedia.org/wiki/OSType
http://en.wikipedia.org/wiki/Type_code
http://en.wikipedia.org/wiki/Uniform_Type_Identifier

> Lire le journal (78 commentaires, moyenne: 3,6).

Xorg et Mac OS X

Posté le 05 juin 2007
0
Bonsoir,

Je voulais poser une question et comme je pense que cette question peut intéresser un grand nombre de personnes et que je souhaite aussi lancer un débat je poste un journal.

je poste le décor, j'ai un macbook avec un double boot Mac OS X (que je n'utilise presque jamais) et une distrib ArchLinux. D'un coté, Mac OS X est très bien intégré à la carte graphique (aucun flash au démarrage, effet fondu lors du changement de résolution, détection du moniteur externe branché) et de l'autre j'ai un Xorg qui reste assez monolithique sans presque d'auto détection et avec des flash lors des changement de résolution et lors du passage de la console linux à X.

Ce que j'appelle flash c'est lorsque l'écran change de contexte (changement de résolution, changement de Xorg à la console Linux, ...). L'écran devient noir, parfois une image hachée apparaît pendant une fraction de seconde (sans doute la mémoire vidéo pas encore initialisée qui contient du garbage), ...

Ce que je me demande c'est qu'est ce qui empêche l'architecture GNU/Linux actuelle d'être aussi bien intégrée à la carte graphique que Mac OS X. Car enfin le driver intel i810 est libre tout de même non ?
Je sais bien que je peux contribuer, et vous aurez raison. Seulement je n'ai pas le temps pour ça malhereusement. J'aimerais bien participer mais cette ressource précieuse me manque déjà :(

Ce que j'aimerais aussi savoir c'est qu'en est-il de l'état actuel de Xorg pour la question de la détection à chaud. je sais que Xorg est maintenant capable de se passer de son fichier de configuration et peux détecter le matériel tout seul comme un grand mais :
- ça fonctionne mal
- aucune interface graphique ni texte pour configurer cela en cours de route (la sortie vidéo par exemple). Cela est-il prévu (peut être un truc avec dbus ...?)

Voila, et accésoirement, qu'est ce que vous en pensez de Xorg actuellement par rapport a ce qu'on trouve ailleurs.

> Lire le journal (32 commentaires, moyenne: 3,2).

[ 1 2 3 :: Suivant ]