Quand je tente de compiler ton code, l'erreur que je vois ne concerne pas une inclusion, mais c'est :
ld: Undefined symbols:
_tar_open
Autrement dit un problème de linkage (pardon, édition de liens). Ton code est donc probablement correct au niveau des inclusions, mais la subtilité doit être sur la ligne de commande pour compiler, sachant que la mienne était :
gcc -I/usr/local/include -L/usr/local/lib -ltar test.c -o test
Le résultat est le type de mon exception InvalidDataException.
De quelle manière obtiens-tu ce résultat : getMessage, toString, ou bien getClass().getName() ? Parceque si la classe de l'exception était bel-et-bien InvalidDataException, cela serait catché...
Ce problème survient uniquement lorsque je fais tourner mon application sur un serveur se trouvant sur une autre machine. Lorsque je test sur mon serveur jboss en local, je n'ai aucun problème.
Ce que dit le texte dont tu parles concerne les EJBException. Cela se comprend, parceque cette exception intervient lorsque le cycle de vie de l'EJB est mis en péril.
La RemoteException en revanche ne sert pas à la même chose : elle n'est d'ailleurs pas "hi-jackée" par le container. De ce que j'ai compris, avant la version 1.4, elle servait uniquement aux exceptions liées à la communication entre l'interface remote et l'EJB, mais depuis la 1.4, elle sert aussi à encapsuler les autres exceptions pour fournir un moyen de les remonter.
La bibliothèque libtar est livrée avec un répertoire doc qui comprend des fichiers man décrivant les principales fonctions qui la compose : soit le package est bien installé et tu peux directement faire man soit tu ne veux pas l'installer, et il suffira pour l'afficher d'une genre :
Et là tu vas me dire, "oui mais des exemples". Certes, ça manque, et google est bien muet sur le coup. Tout ce que j'ai pu trouver c'est un code source en C qui comporte notamment une ouverture de fichier TAR avec cette lib (j'ai bien regardé le code source de gnozip, malheureusement celui-ci utilise une implémentation maison du détarrage...)
Voilà, entre ça, les man pages, et ta débrouillardise, ça devrait aller ? ;-)
Désolé de ne pas avoir donné de code à moi, mais je n'ai jamais utilisé cette lib pour être honnête ! Bonne chance.
Je vais peut-être dire une bêtise, mais il me semblait que seules les RemoteException étaient remontées au client dans le cas d'un client exécuté de manière distante. La javadoc de cette classe semble même parler d'encapsulation des exceptions levées dans le Bean au sein d'une RemoteException :
As of release 1.4, this exception has been retrofitted to conform to the general purpose exception-chaining mechanism. The "wrapped remote exception" that may be provided at construction time and accessed via the public detail field is now known as the cause, and may be accessed via the Throwable.getCause() method, as well as the aforementioned "legacy field."
Que je sache, CVS permet de versionner des fichiers binaires aussi bien que textes... Pour ce qui est des méta-données, de quel genre de méta-données parles tu ? une description du fichier ? une liste de couples champ, valeur ?
Bon, je vais peut-être me faire moinser. Je n'ai aucune affinité avec ce monsieur Le Pen, mais pour ma part je trouve déplacé de proférer des insultes gratuites, sur qui que ce soit. C'est vrai qu'en l'occurrence, il peut en inspirer assez aisément, mais je ne trouve pas ça correct malgré tout.
Si ça peut te rassurer, j'avais aussi rencontré des problèmes avec l'ANPE lors de ma recherche d'emploi : 0 annonces, m'avaient-ils annoncé. Alors finalement, il vaut mieux se débrouiller, envoyer des CVs, aller dans des salons de recrutement (avoir un contact humain direct, c'est parfois plus motivant que de balancer pleins de CVs sans réponses).
Pour moi ça a marché. Sinon si tu vois des annonces Java/J2EE et que tu es prêt à te former comme tu le dis, n'hésites pas à le faire : il existe des tonnes de tutoriaux très bien fais sur le net (et des tonnes de projets libres dans le domaine). Pendant 3 mois de chômage entre 2 emplois, je m'étais formé à J2EE et d'autres technos à la mode (LDAP, etc...), et franchement quand tu les notes sur le CV (même si tu rajoutes "notions" derrière), ça fait déjà un mot qui accroche. Autre avantage, si on te demande ce que tu as fait pendant un "trou" sur ton CV, tu pourrais dire que tu as mis ce temps à profit pour apprendre tel outil ou telle technologie (démontrant ainsi ta capacité à te former).
Sinon je ne sais pas où tu cherches du boulot, mais tu peux peut-être étendre un peu le domaine de ta recherche à quelques villes qui te plaisent ?
En tout cas bonne chance, j'espère que tu trouveras !
Sur une instance d'OpenLDAP (qui tourne donc sur un port TCP), il n'y a bel et bien qu'un annuaire. Par contre, il ne faut pas voir un annuaire comme une liste de contacts, mais plutôt comme une arborescence dans laquelle des contacts (ou autre chose d'ailleurs) peuvent se loger dans différentes branches. Donc potentiellement, cela te fais N listes de contacts.
Ensuite, quand tu fais une recherche (ou quand tu configures un soft exploitant le protocole LDAP), tu précises :
1. une base de recherche : c'est un truc du genre "c=fr, o=mondomaine, ou=mescontacts" (c'est ce qu'on appelle un DN, pour "Distinguished Name")
2. un filtre de recherche (genre tu tapes "Al", et ton programme pourrait retrouver "Alain" et "Aline", mais uniquement s'ils sont contenus dans la base de recherche)
Evidemment je simplifie un peu : les annuaires LDAP permettent beaucoup plus de choses (e.g. authentification, gestion de droits, gestion de groupes d'utilisateurs, etc...) : c'est un sujet très vaste :o)
Je ne connais pas Kontact, mais si c'est un tant soit peu bien foutu comme appli, elle doit permettre de préciser l'emplacement de ton annuaire où sont stockés tes contacts. Dans ce cas, tu n'as qu'à mettre tes contacts dans une "branche"[*] de l'annuaire, et les siens dans une autre. Les préférences de Kontact pour chaque utilisateur incluant sans doute cet emplacement, cela ne devrait pas poser problème d'avoir chacun sa "branche" de configurée.
Voili voilou.
[*] généralement appelée "base de recherche", ou "DN de base" en termes LDAP.
Bon, visiblement le terme "projet de fin d'étude" à changé de signification depuis ma scolarité : pour moi, comme pour les autres qui ont répondu, il semblerait que tu ais oublié la phase préalable et que tu te réveilles un peu tard. Je vais malgré tout te donner 2/3 pistes :
- pour une appli web, commence sans doute par faire un storyboard pour décrire en termes fonctionnel l'appli souhaitée, ça permet de te donner une vision globale de ce que tu veux obtenir,
- modélise les données requises pour ta base,
- crée une base d'exemple avec des valeurs de test,
- apprends à coder des requêtes simples en SQL, puis à les passer par le biais d'un langage de programmation que tu utiliseras côté serveur (Java, ASP, PHP, etc...),
- dans ce même langage, fais une couche d'abstraction qui encapsule les requêtes requises pour ton site,
- essaie déjà de faire une interface sans Ajax, parceque sans vouloir être méchant, si tu ne connais aucune des technos que tu vas utiliser, pour avoir quelquechose qui tourne, tu auras déjà du mal...
Et comme mes petits camarades, je ne trouve pas ça très respectueux de demander à des gens de faire le boulot à ta place (sur leur temps libre), alors que tu n'as visiblement fait aucun effort préalable (ou alors le projet choisit est complètement décorrélé de tes études ?).
Bon, je ne suis pas un expert en réseaux, mais si j'étais toi, j'aurais les éléments suivants :
Pour un pogramme client :
- un thread principal captant les interactions utilisateur sur l'interface graphique.
- un thread écoutant le flux entrant et envoyant des appels à l'interface graphique dès qu'un message complet est reçu (message au sens texte, notification de connexion, ou tout autre type selon ce que peut faire ton IM).
- un thread envoyant les données sur le flux sortant : ce thread recevrait des messages de l'interface graphique.
Pour le programme serveur :
- un thread principal acceptant les connexions entrantes et les dispatchant directement sur ...
- ... un thread de traitement d'une connexion (il y en a donc n pour n connexions simultannées)
Après tout cela dépend de :
- la volumétrie : c'est juste pour 2 personnes qui dialoguent ou bien pour 10000 utilisateurs simultanés ?
- la complexité du protocole
Enfin bref, pour ce genre de programmes, il n'est surement pas inutile de faire un important travail de conception en premier lieu : répartition des tâches entre client et serveur (si tu utilises ce mode), description complète du protocole de communication entre les 2, ... les sujets de réflexion sont nombreux.
Puisque ce projet est certainement destiné à apprendre des choses, je te propose de regarder le document suivant qui te donnera une idée de toutes ces problématiques, si jamais l'anglais n'est pas un problème :
Salut, dans tous les cas tu peux utiliser VLC (qui existe aussi sur Windows au passage), sinon suivant que tu utilises un bureau Gnome ou KDE, il y aura surement un lecteur Vidéo mieux intégré à ton bureau. Pour Gnome, on pourra citer Totem par exemple.
Je ne sais pas à quel point ta syntaxe est complexe, mais si tu veux écrire un parser un tant soit peu lisible pour une grammaire conséquente, peut-être devrais-tu regarder du côté de générateurs de parsers. Celui qui me vient en tête en Java est ANTLR. Je l'avais utilisé il y a quelques années, et même si cela peut prendre un peu de temps à découvrir, le jeu en vaut largement la chandelle : ça évite de réinventer la roue (et les bugs qui vont avec).
[^] # Re: Docs
Posté par mrlem (site web personnel, Mastodon) . En réponse au message utilisation de libtar. Évalué à 2.
Autrement dit un problème de linkage (pardon, édition de liens). Ton code est donc probablement correct au niveau des inclusions, mais la subtilité doit être sur la ligne de commande pour compiler, sachant que la mienne était :
(test.c étant ton source)
[^] # Re: Spécialisé binaire ?
Posté par mrlem (site web personnel, Mastodon) . En réponse au message versionning de fichiers binaires. Évalué à 2.
Ben moi j'ai essayé ;o)
[^] # Re: Type d'exception
Posté par mrlem (site web personnel, Mastodon) . En réponse au message servlet ne catch pas une exception lancée par un EJB. Évalué à 2.
De quelle manière obtiens-tu ce résultat : getMessage, toString, ou bien getClass().getName() ? Parceque si la classe de l'exception était bel-et-bien InvalidDataException, cela serait catché...
[^] # Re: pas remote
Posté par mrlem (site web personnel, Mastodon) . En réponse au message servlet ne catch pas une exception lancée par un EJB. Évalué à 1.
;o)
[^] # Re: Type d'exception
Posté par mrlem (site web personnel, Mastodon) . En réponse au message servlet ne catch pas une exception lancée par un EJB. Évalué à 1.
La RemoteException en revanche ne sert pas à la même chose : elle n'est d'ailleurs pas "hi-jackée" par le container. De ce que j'ai compris, avant la version 1.4, elle servait uniquement aux exceptions liées à la communication entre l'interface remote et l'EJB, mais depuis la 1.4, elle sert aussi à encapsuler les autres exceptions pour fournir un moyen de les remonter.
# Docs
Posté par mrlem (site web personnel, Mastodon) . En réponse au message utilisation de libtar. Évalué à 3.
Les pages dispos son :
- tar_append_file.3
- tar_block_read.3
- tar_extract_all.3
- tar_extract_file.3
- tar_open.3
- th_get_pathname.3
- th_print_long_ls.3
- th_read.3
- th_set_from_stat.3
Et là tu vas me dire, "oui mais des exemples". Certes, ça manque, et google est bien muet sur le coup. Tout ce que j'ai pu trouver c'est un code source en C qui comporte notamment une ouverture de fichier TAR avec cette lib (j'ai bien regardé le code source de gnozip, malheureusement celui-ci utilise une implémentation maison du détarrage...)
http://darcs.frugalware.org/repos/pacman-i18n/src/pacman.c
Voilà, entre ça, les man pages, et ta débrouillardise, ça devrait aller ? ;-)
Désolé de ne pas avoir donné de code à moi, mais je n'ai jamais utilisé cette lib pour être honnête ! Bonne chance.
# Type d'exception
Posté par mrlem (site web personnel, Mastodon) . En réponse au message servlet ne catch pas une exception lancée par un EJB. Évalué à 1.
# Spécialisé binaire ?
Posté par mrlem (site web personnel, Mastodon) . En réponse au message versionning de fichiers binaires. Évalué à 1.
Que je sache, CVS permet de versionner des fichiers binaires aussi bien que textes... Pour ce qui est des méta-données, de quel genre de méta-données parles tu ? une description du fichier ? une liste de couples champ, valeur ?
[^] # Re: Mes conseils
Posté par mrlem (site web personnel, Mastodon) . En réponse au journal Pourquoi pas blender ?. Évalué à 2.
[^] # Re: Bon
Posté par mrlem (site web personnel, Mastodon) . En réponse au journal Bayrou défendra le logiciel libre à l'Assemblé Nationale. Évalué à 7.
Voilà, c'est mon avis.
# Qui donc ?
Posté par mrlem (site web personnel, Mastodon) . En réponse au journal Aide sur le site linuxfr.org. Évalué à 8.
Ben le lien "contactez-nous" en haut de la page (en tout petit, il est vrai) semblerait pas mal indiqué, non ? ;o)
[^] # Re: d'accord
Posté par mrlem (site web personnel, Mastodon) . En réponse au journal Aide sur le site linuxfr.org. Évalué à 10.
# Module Tie
Posté par mrlem (site web personnel, Mastodon) . En réponse au message Comment faire ?. Évalué à 2.
# Ma recherche de boulot
Posté par mrlem (site web personnel, Mastodon) . En réponse au journal Les n commandements du chercheur de travail. Évalué à 7.
Si ça peut te rassurer, j'avais aussi rencontré des problèmes avec l'ANPE lors de ma recherche d'emploi : 0 annonces, m'avaient-ils annoncé. Alors finalement, il vaut mieux se débrouiller, envoyer des CVs, aller dans des salons de recrutement (avoir un contact humain direct, c'est parfois plus motivant que de balancer pleins de CVs sans réponses).
Pour moi ça a marché. Sinon si tu vois des annonces Java/J2EE et que tu es prêt à te former comme tu le dis, n'hésites pas à le faire : il existe des tonnes de tutoriaux très bien fais sur le net (et des tonnes de projets libres dans le domaine). Pendant 3 mois de chômage entre 2 emplois, je m'étais formé à J2EE et d'autres technos à la mode (LDAP, etc...), et franchement quand tu les notes sur le CV (même si tu rajoutes "notions" derrière), ça fait déjà un mot qui accroche. Autre avantage, si on te demande ce que tu as fait pendant un "trou" sur ton CV, tu pourrais dire que tu as mis ce temps à profit pour apprendre tel outil ou telle technologie (démontrant ainsi ta capacité à te former).
Sinon je ne sais pas où tu cherches du boulot, mais tu peux peut-être étendre un peu le domaine de ta recherche à quelques villes qui te plaisent ?
En tout cas bonne chance, j'espère que tu trouveras !
# C'est drôle...
Posté par mrlem (site web personnel, Mastodon) . En réponse au message g un probléme. Évalué à 0.
[^] # Re: Re
Posté par mrlem (site web personnel, Mastodon) . En réponse au message compatibilité caractères windows linux. Évalué à 1.
Je dirais de configurer le linux en UTF-8, et non pas en ISO-8859-1 comme c'est le cas actuellement.
[^] # Re: 0.9999999...
Posté par mrlem (site web personnel, Mastodon) . En réponse au message javascript bug sur une addition ?. Évalué à 2.
[^] # Re: LDAP
Posté par mrlem (site web personnel, Mastodon) . En réponse au message openLDAP et carnets d'adresses Kontact. Évalué à 1.
Ensuite, quand tu fais une recherche (ou quand tu configures un soft exploitant le protocole LDAP), tu précises :
1. une base de recherche : c'est un truc du genre "c=fr, o=mondomaine, ou=mescontacts" (c'est ce qu'on appelle un DN, pour "Distinguished Name")
2. un filtre de recherche (genre tu tapes "Al", et ton programme pourrait retrouver "Alain" et "Aline", mais uniquement s'ils sont contenus dans la base de recherche)
Evidemment je simplifie un peu : les annuaires LDAP permettent beaucoup plus de choses (e.g. authentification, gestion de droits, gestion de groupes d'utilisateurs, etc...) : c'est un sujet très vaste :o)
# LDAP
Posté par mrlem (site web personnel, Mastodon) . En réponse au message openLDAP et carnets d'adresses Kontact. Évalué à 2.
Je ne connais pas Kontact, mais si c'est un tant soit peu bien foutu comme appli, elle doit permettre de préciser l'emplacement de ton annuaire où sont stockés tes contacts. Dans ce cas, tu n'as qu'à mettre tes contacts dans une "branche"[*] de l'annuaire, et les siens dans une autre. Les préférences de Kontact pour chaque utilisateur incluant sans doute cet emplacement, cela ne devrait pas poser problème d'avoir chacun sa "branche" de configurée.
Voili voilou.
[*] généralement appelée "base de recherche", ou "DN de base" en termes LDAP.
# Terragen
Posté par mrlem (site web personnel, Mastodon) . En réponse au journal Droit d'auteur sur la musique classique ?. Évalué à -1.
Rha si seulement Terragen était libre...
C'est quand même un logiciel génial.
(oui, je sais, je n'ai qu'à contribuer aux équivalents libres...)
</hs>
# Pistes
Posté par mrlem (site web personnel, Mastodon) . En réponse au message Ajax. Évalué à 5.
Bon, visiblement le terme "projet de fin d'étude" à changé de signification depuis ma scolarité : pour moi, comme pour les autres qui ont répondu, il semblerait que tu ais oublié la phase préalable et que tu te réveilles un peu tard. Je vais malgré tout te donner 2/3 pistes :
- pour une appli web, commence sans doute par faire un storyboard pour décrire en termes fonctionnel l'appli souhaitée, ça permet de te donner une vision globale de ce que tu veux obtenir,
- modélise les données requises pour ta base,
- crée une base d'exemple avec des valeurs de test,
- apprends à coder des requêtes simples en SQL, puis à les passer par le biais d'un langage de programmation que tu utiliseras côté serveur (Java, ASP, PHP, etc...),
- dans ce même langage, fais une couche d'abstraction qui encapsule les requêtes requises pour ton site,
- essaie déjà de faire une interface sans Ajax, parceque sans vouloir être méchant, si tu ne connais aucune des technos que tu vas utiliser, pour avoir quelquechose qui tourne, tu auras déjà du mal...
Et comme mes petits camarades, je ne trouve pas ça très respectueux de demander à des gens de faire le boulot à ta place (sur leur temps libre), alors que tu n'as visiblement fait aucun effort préalable (ou alors le projet choisit est complètement décorrélé de tes études ?).
Bon courage quand même.
[^] # Re: et pourtant...
Posté par mrlem (site web personnel, Mastodon) . En réponse au message gros débutant, problême pour compiler (gcc). Évalué à 5.
Je peux me tromper, mais vu le code, un simple appui sur une touche ne suffit-il pas à sortir ? (cf. l'appel à getchar)
# Réseau
Posté par mrlem (site web personnel, Mastodon) . En réponse au message Glib et les threads. Évalué à 3.
Bon, je ne suis pas un expert en réseaux, mais si j'étais toi, j'aurais les éléments suivants :
Pour un pogramme client :
- un thread principal captant les interactions utilisateur sur l'interface graphique.
- un thread écoutant le flux entrant et envoyant des appels à l'interface graphique dès qu'un message complet est reçu (message au sens texte, notification de connexion, ou tout autre type selon ce que peut faire ton IM).
- un thread envoyant les données sur le flux sortant : ce thread recevrait des messages de l'interface graphique.
Pour le programme serveur :
- un thread principal acceptant les connexions entrantes et les dispatchant directement sur ...
- ... un thread de traitement d'une connexion (il y en a donc n pour n connexions simultannées)
Après tout cela dépend de :
- la volumétrie : c'est juste pour 2 personnes qui dialoguent ou bien pour 10000 utilisateurs simultanés ?
- la complexité du protocole
Enfin bref, pour ce genre de programmes, il n'est surement pas inutile de faire un important travail de conception en premier lieu : répartition des tâches entre client et serveur (si tu utilises ce mode), description complète du protocole de communication entre les 2, ... les sujets de réflexion sont nombreux.
Puisque ce projet est certainement destiné à apprendre des choses, je te propose de regarder le document suivant qui te donnera une idée de toutes ces problématiques, si jamais l'anglais n'est pas un problème :
- http://www.faqs.org/rfcs/rfc2778.html - une synthèse sympa de ces problématiques
- http://www.cse.ohio-state.edu/nrl/IM.htm - plein d'autres liens
Sinon, Google est ton ami :o)
J'espère ne pas avoir tapé trop à côté de ta question. Bonne chance !
# Video
Posté par mrlem (site web personnel, Mastodon) . En réponse au message Lecture de fichier video ???. Évalué à 2.
Par contre je ne connais pas les fichiers MKV.
# Parsing
Posté par mrlem (site web personnel, Mastodon) . En réponse au message [Java] Extraire informations d'une String. Évalué à 1.
Je ne sais pas à quel point ta syntaxe est complexe, mais si tu veux écrire un parser un tant soit peu lisible pour une grammaire conséquente, peut-être devrais-tu regarder du côté de générateurs de parsers. Celui qui me vient en tête en Java est ANTLR. Je l'avais utilisé il y a quelques années, et même si cela peut prendre un peu de temps à découvrir, le jeu en vaut largement la chandelle : ça évite de réinventer la roue (et les bugs qui vont avec).
http://www.antlr.org/doc/getting-started.html