Bonjour, je programme depuis une dizaine d'année, j'ai commencé avec le basic puis le VB ensuite j'ai un peu touché à tout (DB, C, C++, OpenGL, ASM, Flash, PHP, JS) mais ce qui m'intéresse dans la programmation ce ne sont pas ses concepts en eux-même mais la possibilité de créer des choses. J'ai réalisé de nombreux projets dans une certaine optique que je recommençais à chaque fois pour arriver à une idée finale : Nex
Cette idée est venue de l'observation de plusieurs contraintes et du perfectionnement d'anciens projets.
Généralités et avancement
Chaque information ou ensemble d'informations sera organisée dans une structure appelée ressource.
Caractéristiques principales - contrôle de la fiabilité, qualité et accessibilité de l'information - ressources, types de données et interfaces personnalisables - connectivité des ressources - mise en place de structures de données et réseaux d'informations simple et rapide - sécurité de l'accès à l'information - partage simple et rapide - gestion des utilisateurs et groupes d'utilisateurs - synchronisation multiple des données - recherche avancée (types, propriétés, tags, ressources parents) (la popularité n'est pas imposée) - modules (client/serveur) permettant d’interagir avec les données et interchangeables - privatisation, pas de contrôle des données par une seule organisation, vous choisissez ou et avec qui vous partagez vos données - vous choisissez quelles informations vous voulez surveiller quelque soit son emplacement (notification) - redondance minimale des données - possibilité de repartir les données sur plusieurs serveurs physiques grâce a la virtualisation de serveurs nex
Screenshot : Propriétés d'une ressource de type movie utilisant les interfaces movie et stream (affiché sous l'interface nxi)
_______________________Concept
Nex est donc un système de gestion de ressources organisé comme ceci :
Structure globale
- ressources : elles stockent les informations
- modules : ils permettent d'ajouter des fonctionnalités et de traiter les ressources
- interfaces : elles permettent de visualiser les ressources
Ressources
Les ressources permettent de stocker une information sous une structure définie, le but est de représenter une idée (qui peut utiliser plusieurs informations) avec une seule entité. Par exemple, une ressource "film" contiendra comme données une image (l'affiche), une vidéo (le film), du texte (réalisateur / acteurs etc ..)
Une ressource peut avoir :
- des types (identification de l'information)
- des connexions (liens logiques)
- des modules (applications de fonctions)
- des interfaces (affichage des informations)
Connexions
Ces ressources peuvent être connectées entre elles par différents types de connexion. Par exemple, sur un forum, on pourrait connecter une ressource de type "message" à une autre avec la connexion "résolution" ou deux questions similaire avec "similitude". On peut ensuite à partir de n'importe quel message retrouver les connexion résolutions en utilisant la connexion "similitude".
Un autre exemple, la connexion "phonétique" qui permet de trouver une information quand on ne connait pas l'orthographe lors de la recherche.
Le but est donc que l'utilisateur puisse chercher et trouver des informations de la même manière qu'il le fait avec sa mémoire.
Module
Le module noyau est "nxs", il permet la gestion de base des ressources, par exemple pour lister les ressources, on utilise la commande "res_list" de du module "nxs"
Chaque module peut utiliser les fonctions des autres modules, un module pourra donc utiliser les fonctions de nxs
Un module peut être exécuté côté serveur ou client, on peut donc utiliser une ressource distante avec un module local ou inversement. Par exemple pour exécuter une requête sur un serveur, on peut écrire : nxs::request::execute("nxs::res_list;id:0;", adresse_serveur);
On peut ainsi lister les ressources (root) locales ou d'un serveur spécifié puis les utiliser dans un module ou une interface.
Interface
Similaire aux modules, leur but est de gérer l'affichage
Actuellement les interfaces sont en C++ et génèrent du html, l'ajout du python est prévu.
Serveur
Le serveur peut gérer plusieurs protocoles (actuellement http et nex), il sera possible d'en ajouter par la suite (ws, ftp ..)
Actuellement, le protocole nex permet aux serveurs de communiquer entre eux, d'envoyer des données (binaire / texte / texte serialisé). Les données peuvent être envoyées en stream, la requête sera donc exécutée à chaque réception des données.
Partage
La gestion des transferts et partage de ressources / fichiers sera géré par le module nxs.
Il y aura plusieurs façon de partager des ressources :
- ajout de connexions
- transfert des données
- synchronisation des ressources
On peut donc créer de nombreuses applications en combinant ces différents éléments, par exemple une application mail se fera assez rapidement en combinant le partage via connexion, la synchronisation et la gestion des autorisations
_______________________Le projet et son originalité
La modularité de Nex permettra de viser n'importe quel client utilisant internet.
Le but est de gérer, organiser et contrôler(fiabilité, source) l'information circulant sur internet dans le but d'augmenter la pertinence des recherches, de réduire le temps de mise en place de nouvelles données et d'avoir un système de partage simple et complet.
_______________________Recrutement
Devs C++ (système / interface / modules)
Webmaster (site de présentation / documentation)
Graphiste (présentation du projet / réalisation de maquettes pour l'interface graphique)
Webdesigner (interface)
Je recherche des personnes sérieuses capable de s'investir un minimum et de travailler dans une ambiance agréable.
Il n'y a pas de rémunération pour le développement même du projet mais une fois finalisé, il y aura de nombreuses possibilités de rentabilisation.
Pour plus d'informations sur le projet, sa conception, ses applications et son évolution future, contactez moi par MP.
Je fournirais tous les éléments (schémas, présentation, commercialisation ...) aux personnes décidant de se lancer dans ce projet. Le but étant de former une équipe, nous parlerons des étapes de développement de la conception au déploiement plus en détail.
Bon courage pour réaliser ton projet. Je bosse sur quelque chose d'extrêmement similaire (quoi que tout de même plus fou ^^) depuis un moment déjà (bien que l'on me l'est déconseillé car ça ne peut pas être fini dans mon cas) et je peux t'assurer qu'il y a du taff.
Je vais quand même suivre ton projet, voir comment ça évolue.
Dev C++ en prio ou alors quelqu'un capable de gérer le projet pour que je puisse me concentrer sur le code (nécessite de conceptualiser tout le projet)
Ou simplement quelqu'un pouvant m'assister pour de nombreuses tâches simple (nécessite juste quelques bases en prog)
Ben moi sa m'a l'air intéréssant même si j'ai pas tout compris au concept
Envoi un MP si tu veux un Dev C++. Cependant, autant je suis expert avec la librairie Qt, autant pour le reste je ne suis pas sûr de pouvoir t'aider. De plus, il est vrai qu'avec ma formation en DUT informatique, si le code devient trop complexe, il se peut que j'ai du mal a suivre le rythme.
"A tous les optimistes, parfois la lumière au bout du tunnel, c'est un train ! Cordialement, un pessimiste"
Pour l'instant un seul si c'est ma motivation qui t'inquiète, sache que coder la totalité d'un site en PHP ne devrais pas me prendre plus d'une semaine de travail. La création d'une maquette pour un autre site web, une soirée. Le seul projet où j'ai postulé et qui devrait me demander un temps de travail conséquent, c'est le tient. Cependant je n'ai dit oui qu'a une seule personne pour le moment car il m'a convaincu du bien fondé de son idée et que son design pourrait être intéressant. Pour le travail de rédaction de news j'ai dit non car cela me demanderais trop d'implication.
Sans vouloir te vexer , au lieu de t'inquiéter de la masse de travail qui m'attend, tu ferais mieux de m'expliquer ton projet plus en détail et le rôle que j'y jouerais et ce par MP car par skype c'est impossible en conversation directe. (Tout cela dans l'optique où tu souhaite toujours une aide de ma part)
Pour finir postuler pour un projet intéressant n'est pas y prendre part.
Si tu veux des explications sur mes capacités réelles, je maîtrise le C++ même si j'utilise dans 100% des cas le framework Qt. Je connais tout de même les principes fondamentaux. Je suis bon en anglais aussi si sa peut aider ...
"A tous les optimistes, parfois la lumière au bout du tunnel, c'est un train ! Cordialement, un pessimiste"
Ce qui m'inquiète, ce sont les gens qui se lancent dans un projet puis arrêtent rapidement, c'est plus une perte de temps qu'un gain, c'est pour ça que je m'interrogeais.
Ce serait plus pratique pour moi de savoir ce que vous ne comprenez pas pour mieux expliquer, je vais essayer de vous présenter l'idée autrement.
Imaginons qu'au lieu de stocker des mots dans un dictionnaire, on stocke des idées / informations sur un réseau. Une ressource est le support de ces idées.
Ensuite, au lieu de classer des mots par lettres, on connecte les idées entre elles en spécifiant un type pour la connexion.
On obtient donc un réseau de ressources interconnectés.
On peut donc par exemple retrouver une idée à partir d'une autre idée en suivant différentes logiques. Ces connexions permettent de trouver un chemin dans le réseau pour trouver l'idée selon la logique de l'utilisateur.
J’espère que ce sera un peu plus clair, sinon n'hésitez pas à demander.
J'ai un peu de mal à voir ce que tu veut faire, et plus précisément ce que tu entend par ressource.
Est-ce que les ressources sont stockées sur les serveurs, sur internet ou chez les clients ?
Une ressources c'est quoi ? une information ? (auquel cas on peut voir ça comme une grande encyclopédie)
Des fichiers à partager entre collaborateurs ? (par exemple SharePoint, et bien d'autres soft de partage de documents à destination des entreprises)
Est-ce qu'on peut partager et publier des musiques /vidéos ?
Y'a t'il un coté social, avec suivi de catégorie/ressources/personnes ? possibilité de commenter une ressource ?
Le projet semble sympathique, mais j'aimerais bien avoir plus de détails
Voila ce qui manque à tes explications ! Du concret. Que va faire ton soft au final ? Comme BAKfr l'a dit, quelle visée ? Quel type d'information ? Je trouve cela très confus en fait ...
"A tous les optimistes, parfois la lumière au bout du tunnel, c'est un train ! Cordialement, un pessimiste"
Est-ce que les ressources sont stockées sur les serveurs, sur internet ou chez les clients ?
Les ressources sont gérées par des serveurs, lorsqu'un client envoi une ressource par exemple, c'est le serveur du client qui envoi la ressource vers un autre serveur. Un utilisateur qui veut gérer ses informations dispose donc d'un client et d'un serveur. Lorsqu'un utilisateur veut ajouter des ressources à son serveur, les données physiques peuvent être stockées n'importe où, sur son PC ou sur internet.
Une ressources c'est quoi ? une information ?
"Chaque information ou ensemble d'informations sera organisée dans une structure appelée ressource."
Je vois pas comment le dire autrement, c'est une information structurée, tu as le schémas ici : http://nex.neuroshok.com/data/res_struct.jpg
Tu peux voir ça comme une grande encyclopédie oui mais qui ne s'arrête pas qu'aux connaissances. Par exemple, une ressource peut stocker une image, ce qui peut ne pas être forcément une connaissance.
Des fichiers à partager entre collaborateurs ?
Tu peux partager des ressources oui, donc la différence avec un partage de fichier : si une idée est représentée par une image et une légende, tu partages l'ensemble (1 ressource) ce qui correspond à 2 fichiers. Tu peux aussi les synchroniser pour que 3 personnes qui travaillent ensembles par exemple aient une base commune de travail.
Est-ce qu'on peut partager et publier des musiques /vidéos ?
Oui une ressource peut être de type musique ou vidéo, tu peux les partager ou tu veux avec les autorisations que tu veux comme n'importe quelle autre ressource.
Y'a t'il un coté social, avec suivi de catégorie/ressources/personnes ? possibilité de commenter une ressource ?
Oui un système de notification permet d'être prévenu lorsqu'une des propriétés de la ressource surveillée change, par exemple si une vidéo est ajoutée sur un serveur, on peut demander une notification si cette vidéo est ajoutée par le membre Z dans la langue Y.
Oui tu peux commenter une ressource tout simplement en connectant une ressource de type 'commentaire' à la ressource que tu veux commenter.
Tu peux aussi contrôler la fiabilité d'une ressource, n'importe quel user peut juger de la fiabilité de l'information (par exemple une vidéo d'un poulet qui comporte des tags sur les chats aura une fiabilité basse)
Tu peux aussi créer une ressource qui sera synchronisée à la ressource d'un ami qui te permettra d'être à jour avec ses ressources.
Que va faire ton soft au final ? Comme BAKfr l'a dit, quelle visée ? Quel type d'information ?
Le but n'est pas d'avoir une seule fonctionnalité mais permettre pour chaque utilisateur de créer son modèle de gestion de ses informations. ça peut donc viser n'importe qui qui gère des informations quel que soit le type car n'importe quel utilisateur peut créer des types de ressources, des interfaces ou des modules.
Voila voila j'espère que c'est un peu plus clair sinon demandez moi ce qui ne l'est pas.
En résumé, tu veux un soft qui puisse indexer et présenter tout type de données.
Le fait est qu'il n'est pas possible de créer un logiciel qui puisse résoudre toutes les attentes. Soit on traite un problème, et on le fait bien, soit on essaye de trouver un format générique pour toutes les données, mais moins personnalisé.
J'ai compris que tu souhaitais pouvoir ajouter des "modules" pour chaque type de données, très bien.
Dans ce cas, sur quels types de données vas-tu commencer ? Et quelles seront les relations possibles entre ces données (ce que tu appelles "connexion de ressources") ? Les quelques exemples que tu proposes laissent penser que tu veux garder comme ressources des définitions de mots, ou bien te concentrer sur le côté linguistique (tu proposes "orthographe" et "synonyme" comme type de liaison).
Dans une application comme celle-ci, le plus important est la façon dont tu va présenter ça à l'utilisateur, et comment celui-ci va le percevoir.
Exemple:
Pour envoyer des messages à une ou plusieurs personnes, on a différentes technologies: les SMS, IRC, les mails, les systèmes de messagerie style Skype ou encore les newsgroups.
Chacune de ces possibilités à ses particularités, qui font que je vais utiliser l'une ou l'autre en fonction de mes besoins. Pourtant, tous font la même chose.
Donc la question est: comment ton logiciel veut-il nous inciter à utiliser nos données ?
L'idéal serait que tu nous présentes des cas d'utilisations concrets, qui montrent l'avantage d'utiliser ta solution.
J'apprécie ton idée, et j'ai moi-même pensé à développer une interface web similaire pour centraliser tous mes flux de données sur le web, mais je sais que j'ai une vision très spécifique de ce que je veux, et que cela ne conviendrait pas à un autre.
J’espère que tu réussiras à développer ton projet.
Soit on traite un problème, et on le fait bien, soit on essaye de trouver un format générique pour toutes les données, mais moins personnalisé.
Les ressources ont des structures et elles sont personnalisables, ce ne sont pas les structures qui sont personnalisables.
Dans ce cas, sur quels types de données vas-tu commencer ?
Les modules vont agir sur les ressources, on peut créer ce que l'on veut donc je prendrais un type au hasard pour l'exemple.
Et quelles seront les relations possibles entre ces données (ce que tu appelles "connexion de ressources") ?
Les connexions sont créees par l'utilisateur, ce la dépend de ses besoins, si tu veux un autre exemple, une ressource de type 'problème' peut être connectée à une ressource 'solution'
Chacune de ces possibilités à ses particularités, qui font que je vais utiliser l'une ou l'autre en fonction de mes besoins. Pourtant, tous font la même chose.
Le but est justement de pouvoir utiliser chaque fonctionnalité en centralisant les informations. L'avantage sera par exemple de pouvoir transmettre un message Skype sur IRC, de connecter un mail à un SMS, de synchroniser ses mails etc ..
Par exemple, si tu as une ressource 'profil', tu spécifies les accès des modules aux propriétés, ensuite tu utilises le(s) module(s) dont tu as besoin et l'information est transmise sur tout les modes de communication selon tes paramètres.
Donc la question est: comment ton logiciel veut-il nous inciter à utiliser nos données ?
Comme d'habitude sauf que les possibilités de gestion seront plus nombreuses et plus rapides.
Je met pas trop d'exemple en général car sinon les gens ne lisent que les exemples et se limitent à ça sans penser à toutes les possibilités d'utilisation.
La plupart du temps quand quelqu'un comprend bien le concept, il trouve des possibilités qui serait pratique pour lui tout seul.
Un exemple qu'un ami a trouvé récemment : il voulait gérer sa bibliothèque et pouvoir mettre en vente certains livres.
Concrètement :
- Il ajoute les ressources de type 'livre' dans sa bibliothèque avec ses propriétés
- Il installe le module de vente
- Il sélectionne un livre puis lance la commande 'vente' du module
- Il renseigne les champs manquants si besoin (par exemple prix de vente)
* Le module convertit la ressource 'livre' en ressource 'annonce' puis l'envoi sur le site d'annonce choisit
Je pourrais en faire des milliers d'exemple mais je pense que le mieux est de bien comprendre le concept pour pouvoir les imaginer soit même.
Je te laisse trouver l'exemple pour les flux de données
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.