Solar Eagle
J'ai besoin de mettre à jour ma -plutôt volumineuse- collection de disques, et j'aimerais créer une base de données simple, avec une interface de type page web, afin de pouvoir y accéder.
Les logiciels existants ne m'intéressent pas des tonnes (et ceux de KDE sont mal intégrés à Gnome) et proposent souvent des fonctionnalités inutiles (comme aller chercher la pochette ici ou là) tout en manquant souvent de fonctionnalités utiles pour moi (comme pouvoir préciser l'édition, distinguer les rééditions des premiers pressages, etc). Bilan, je pensais me retrousser les manches et y aller franco.
Alors, mes connaissances en programmation sont limitées, mais j'ai du temps cet été pour m'y plonger, et mon besoin d'un outil de classement adapté est déjà en lui-même une très bonne raison de bosser.
Je préfèrerais éviter les outils du type OOBase car je n'ai jamais réussi à me débrouiller avec faute de documentation convenable (en tout cas à ma disposition), et cela me rappellerait mes déboires lointains sous Access 2000... Je pense avoir compris le principe sous-jacent mais l'ergonomie de ces logiciels m'est hermétique, sans compter que des limitations arbitraires survenaient trop souvent à mon goût.
Bilan, php + MySQL (j'ai un bouquin dessus) ? Ruby on Rails ? Autre chose ? Merci pour tout conseil.
Et, si par un heureux hasard j'arrivais à pondre un truc potable, je mettrai ça en ligne, car je connais des gens que ça pourrait intéresser.
PS : Il y a bien Discogs, mais là aussi, j'aimerais pouvoir garder mes données chez moi sous un format ouvert.
[supprimé]
Bonjour,
Le solution web la plus simple que je connaissance est php+sqlite. C'est une base plus légère que SQLITE et qui fonctionne à partir d'un simple fichier sur ton PC.
Tu peux également utiliser python+sqlite+gtk pour faire une application avec fenêtre. Si tu veux faire du web avec python, je te recommande chaudement d'utiliser le framework web web2py qui est très simple à utiliser.
L'avantage principale d'une application est de fournir une interface simple à manipuler au quotidien et des fonctions. Si tu veux simplement stocker des données, une base de type OOOBase ou sqlite avec sqlitebrowser peut faire l'affaire.
N'hésite pas si tu as des questions.
Bon courage
pingou
Je déconseille sqlite qui a quelques mauvaises mani (comme de ne pas enforcer le type de données).
PHP est simple et tu pourras arriver assez facilement à un résultat. Je te conseille de regarder un peu ce que c'est que le développement en mvc et de voir du côté de smarty.
Python est un bon langage mais pas sûr que ce soit le plus facile pour commencer. Pour le framework web, je pencherai plutôt pour TurboGears bien que je trouve la version 1 plus facile que la version 2.
Après sache qu'en perl tu as une bonne librairie pour l'édition des tags des mp3.
Solar Eagle
Merci pour ta réponse.
En fait, je pensais d'abord faire simple car je me vois mal apprendre tout en même temps. L'idée de n'avoir qu'un seul fichier serait intéressante en terme de portabilité. Je pourrais alors mettre à jour la liste de mon netbook quand je suis en déplacement. Donc je vais de ce pas chercher de la doc dessus. Est-ce portable sous SQL ou autre si un jour le besoin s'en fait ressentir ?
J'ai déjà idée des choses à y mettre, et des liens à créer. Ce n'est pas très complexe, en fait. Il s'agit juste de le rendre fonctionnel, et éventuellement d'enjoliver ensuite. Vu que ma liste faite sous tableur, sous Excel 2000 puis convertie au format ods semble corrompue, avec parfois des données perdues, des modifications non enregistrées, etc.
EDIt : Je viens de voir la seconde réponse. Merci aussi.
[supprimé]
Sqlite respecte les standards SQL, et il est largement utilisé. Tu peux le retrouver par exemple intégré à firefox ou android.
Tu pourras donc exporter tes données et la structure de la base sans problème.
Tu peux commencer avec sqlitebrowser qui te permet de créer la structure et de remplir quelques infos:
http://sqlitebrowser.sourceforge.net/
Ensuite, libre à toi de choisir la technologie qui te convient pour développer. Tout dépend de ton niveau de programmation, mais je pense qu'un framework web php simple ou web2py en python pourrait te convenir.
Marien
Sinon tu as le couple PHP / MySQL, mais j'ai peur que MySQL soit un peu lourd pour tes besoins. L'avantage est que tu trouveras beaucoup de documentation destinée au débutant pour t'aider (après je n'ai jamais utilisé sqlite donc je ne connais pas la qualité de la documentation)
Solar Eagle
Bon, merci pour vos réponses. Et y a-t-il des GUI pour travailler avec ça ? J'ai bien bidouillé sous Vim, par exemple pour les fichiers de conf sous Archlinux, mais il me semble qu'un GUI serait plus adapté dans ce cas, quitte à retoucher le code si besoin.
pingou
MySQL peut être lourd mais en même temps tu sembles vouloir faire pas mal de chose et je suspecte ta bilbiothèque audio d'être d'une certaine taille.
Pour MySQL, le fameux phpMyAdmin est un incontournable.
Pour PHP/Python/whatever perso j'aime geany mais eclipse fait un bon boulot avec les deux.
@freaxmind
http://www.sqlite.org/faq.html#q3 je parle de ça (c'est un détail mais pénible dès que tu veux convertire un base sqlite en MySQL/postgres et consort)
Marien
pingou wrote:@freaxmind
http://www.sqlite.org/faq.html#q3 je parle de ça (c'est un détail mais pénible dès que tu veux convertire un base sqlite en MySQL/postgres et consort)
Je vois pas trop l'intérêt de pouvoir insérer un string dans un champs integer :-? Mais en principe si tu remplis la base en respectant les normes des autres bases, il ne devrait pas y avoir de problème de compatibilité
(ils la font à la gnome3 "This is a feature, not a bug" :-D)
Solar Eagle
@pingou : tu as tout bien soupçonné. J'ai dans les 3000 à 4000 disques, cassettes, etc, et je dois gérer les rééditions, les splits (pour ceux qui ne connaîtraient pas, il y a deux, parfois trois et plus rarement quatre groupes sur un même disque), etc...
L'idée serait donc de :
1. Construire la base de données, sous forme d'un modèle (j'ai un plan en construction), avec une structure aux contraintes précises.
2. Remplir cette base avec quelques données pour commencer, données de préférence variées afin de tester toutes les combinaisons possibles.
3. Faire un GUI, web ou autre pour y accéder plus aisément.
Ai-je bon ?
Marien
J'ajouterai même une étape avant la 1. Passe par une phase d'analyse de ton problème pour dénicher le maximum de contraintes imposées pour ne pas te retrouver à la fin avec des cas "ah bin j'y avais pas pensé, zut faut tout reprendre !" 😉
Après personnellement je préfère inverser les étapes 2 et 3 pour ne pas oublier le cas où ta base est vide : qu'est ce qui s'affiche dans ton interface ? Après si tu y penses pendant la phase de développement, tant mieux, mais on est jamais à l'abri d'un oubli 🙂
As-tu fais un choix dans tes technologies ?
pingou
L'ordre me parait bon et Marien soulève un problème intéressant aussi (à ne pas oublier).
En fait la partie 2 et 3 sont indépendantes et nécessiteront sans doute 2 programmes séparé.
Solar Eagle
@ Marien : La phase avant la 1 est en cours, sur le papier. 😉 Disons qu'avoir construit ma liste sous tableur, et l'avoir réorganisée entre deux, j'y ai déjà pensé. Au départ je l'avais conçue sous forme de disques, quand ma collection était encore petite, sans doubles, etc, puis sous forme d'enregistrements quand je faisais des échanges de CD-Rs, etc, et actuellement sous forme de support (CD, cassette, etc), donc un même album peut correspondre à deux entrées. Je vais devoir aussi réfléchir à comment calculer la valeur totale du truc, pour l'assurance.
Par contre, tout ce qui est fichiers audio restera géré par Rhythmbox (ou autre), et ne sera pas listé. Je suis assez vieille école sur ce plan-là...
Je vais tenter avec PHP + MySQL au final, car c'est là où je trouverais le plus de documentation disponible.
@ pingou : L'interface de Geany a l'air sympathique. J'ai installé une paire de plugins qui devraient aller bien, et je me lance sur le site du zéro pour débuter.
En tout cas, merci encore car j'ai l'esprit un peu plus clair maintenant. Je tenterai de vous tenir au courant.
PS : J'avais peut-être posté des questions ici à propos de LaTex pour un autre projet de fanzine il y a deux ans environ. C'est sorti depuis fin 2009 en fait, et ça s'est bien écoulé. Ça s'appelle Barb Wire Zine et c'est orienté Metal. Nous n'avons pas trop réfléchi aux problèmes de licence, mais je sens qu'il va falloir s'y pencher un jour, vu qu'un second numéro est en préparation. C'est plutôt du fair use en fait : le groupe qui le veut peut disposer d'une copie pdf de son interview, en plus de la copie physique du fanzine qui lui revient de droit
Marien
pingou wrote:En fait la partie 2 et 3 sont indépendantes et nécessiteront sans doute 2 programmes séparé.
Pourquoi 2 applications ? Une seule avec un mode affichage et un mode de gestion des musiques peut très bien faire l'affaire
@Solar Eagle
N'oublie pas de passer ton sujet en résolu alors 😉
Un petit conseil aussi : le site du zéro est très bien pour débuter (notamment les cours html/css, php/mysql, j'ai commencé par là) mais après il y a des notions de sécurité et de bonnes pratiques qui sont moyennement vues, et pour approfondir il faudra sans doute voir d'autres sites. Après, vu que ton projet est personnel dans un premier temps, il n'y a peut-être pas besoin de plus de choses que les cours du site du zéro ^^
Si jamais tu as besoin d'aide, je peux toujours te filer un coup de main
Solar Eagle
@ Marien : C'est noté, mais je n'abuserai pas !