Thotbox - application collaborative de partage de codes sour

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Thotbox - application collaborative de partage de codes

Message par djes »

Je suis en train de regarder. J'ai eu un petit bug sur le séparateur de chemin. Sur le dépôt subversion, le séparateur est toujours "/", il ne faut donc pas changer en fonction de la plateforme.
Pour le fichier de préférences, je préférerais que nous utilisions d'abord le dossier local de l'utilisateur, puis le dossier de l'application. J'ai commencé les modifs, il faut que je change mon frontend pour s'adapter à ton code (qui est très bien au passage ; "Dev-Type" te permet de créer du code automatiquement ?). Pour l'instant je n'arrive pas à me connecter, mais ici il y a un proxy assez casse-pieds.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

djes a écrit :"Dev-Type" te permet de créer du code automatiquement ?
Précisément, c'est pour cette raison qu'il y a un bloc de commandes (Macro + Procédure), le commentaire suivant :

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 00.029 secondes (37344.83 lignes/seconde) <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
d'autres commandes (Macro + Procédure) généralement des versions modifiées des commandes du premier bloc ou des commandes créées manuellement à 100%.

Dev-Type est un utilitaire sur lequel je travaille depuis fort longtemps (automne 2006) et qui aujourd'hui arrive à générer 224 commandes en tout genre et le code source du programme fait dans les 24 900 lignes. Bien entendu le code généré n'est pas parfait et les algorithmes nécessites un petit "Fine tuning" à chaque fois. Le seul Drawback c'est que quelques librairies persos sont nécessaires à l'utilisation du code généré pour les commandes touchant à la lecture/écriture/création/ouverture/lecture de fichier binaire, encodé, crypté et à double sécurité. Il y a également les commandes touchant les fichiers Pack qui ont besoin d'une telle librairie. Pour le reste (fichier XML et fichier Preferences), le code généré est compatible avec PureBasic 4.60 sans problème et même les versions antérieures si la structure ne contient pas de Array, List ou Map.

En passant, l'utilitaire en question sera disponible pour Windows (XP) et Linux très bientôt je l'espère. Il est possible également que je mette le code source à disposition pour ceux qui voudraient compiler le code pour une autre version de Windows ou encore sur Mac OS.

Édit :

Pour la localisation du fichier *.prefs je n'ai pas pris l'initiative de le changer de répertoire pour le moment. Mais c'est vrai qu'il serait bien de vérifier dans le répertoire local où se trouve le programme. Cependant, il est possible que ce répertoire soit protégé contre l'écriture de fichier à moins d'avoir les droits administrateurs ce qui peut poser des problèmes. C'est le cas sous Linux entre autre et ce n'est pas le cas du répertoire de l'utilisateur. Le "C:\Documents and Setting\Application data\Thothbox\thothbox.pref" sous windows ou "/home/guimauve/.thothbox/thothbox.pref" sous Linux et pour Mac, je ne sais pas où l'écrire. Ceci étant dit, je vais modifier la structure ThothBox pour prendre en compte 2 répertoires pour lire/écrire le fichier *.pref.

A+
Guimauve
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Thotbox - application collaborative de partage de codes

Message par Geo Trouvpatou »

Je viens de faire un essai sous Linux pour tester Rabbit.
Est-ce que le dossier CodeArchiv_v4-Beta à toujours un intérêt à être présent ?
Au départ, c'était pour avoir du contenu à montrer dans le Frontend, mais maintenant ?

Est-ce que le fichier svn.pb existe pour vous les dev ?
Sinon ce serait bien de le virer du fichier projet.

Je ne sais pas si tu t'en est aperçu Djes, mais depuis le dernier envoi, le chemin vers le serveur n'est plus présent par défaut dans les infos de paramétrage.

Actuellement sous Nux, ça ne tourne pas, mais je suis encore sous une v4.50b2, même si j'imagine que le problème ne vient pas de là.

Bye.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

C'est possible que je n'ai pas configurer le tout correctement puisque j'en suis encore au stade d'apprentissage à propos de SVN et le développement de logiciel en groupe.

De plus, le code que j'ai envoyé n'est plus vraiment en lien avec la version original (réorganisation complète, style PBO, etc.) et pour le moment le système de requête client / serveur est HS même si le code est en cours de programmation. Encore une fois, je suis en apprentissage et là dessus, je dois étudier les codes existants afin de comprendre la théorie de fonctionnement derrière et c'est plus long que de simplement programmer le truc directement.

A+
Guimauve
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Thotbox - application collaborative de partage de codes

Message par Geo Trouvpatou »

Ah ben voilà, p'tit filou Guimauve.
Sous linux je lançais le fichier projet prévu pour Windows.

J'avais pas vu qu'il y avait tes propres fichiers.
Y'a pas moyen que tu crées le fichier projet pour Linux ?

Après faudra voir si les français préfèrent : Login ou Utilisateur.
A moins que tu ais fait cette petite différence pour tester la modif de langue.

Donc pour l'instant sous le Koala Karmic aucune erreur.

Bye et bon courage.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

Geo Trouvpatou a écrit :Ah ben voilà, p'tit filou Guimauve.
Sous linux je lançais le fichier projet prévu pour Windows.

J'avais pas vu qu'il y avait tes propres fichiers.
Y'a pas moyen que tu crées le fichier projet pour Linux ?

Après faudra voir si les français préfèrent : Login ou Utilisateur.
A moins que tu ais fait cette petite différence pour tester la modif de langue.

Donc pour l'instant sous le Koala Karmic aucune erreur.

Bye et bon courage.
Et oui, j'ai délibérément inséré une différence entre le fichier fr_CA et fr_FR pour tester le changement de langue depuis la fenêtre de configuration. Vu que ça fonctionne on peut corriger sans problème. Disons que je ne me fais trop de soucis par rapport à ça pour un projet en cours de développement et qui n'a pas toute ses fonctionnalités d'implémentées pour le moment.

Édit :
Le fichier projet, tu veux dire le fichier projet Purebasic avec l'extension *.pbp ?
Le fichier est ajouté pour Linux : Thothbox - Linux.pbp

A+
Guimauve
Dernière modification par Guimauve le mar. 04/oct./2011 6:27, modifié 1 fois.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Thotbox - application collaborative de partage de codes

Message par djes »

La racine des fichiers partagés sur le serveur SVN est https://pb-source-repositery.googlecode.com/svn/trunk/
(tronc commun), tandis que la racine de Thotbox est https://pb-source-repositery.googlecode ... k/Thothbox

A priori, seul ce dernier dossier devrait être modifiée pour le projet, le reste étant de l'espace pour mettre d'autres codes en opensource (et pas seulement pour l'exemple, mais pour que tout le monde puisse en profiter, ou pour travailler à plusieurs dessus).

edit: correction donnée par guimauve
Dernière modification par djes le mer. 05/oct./2011 8:33, modifié 1 fois.
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

J'ai regardé les modifications apportées dans le code et personnellement je n'aurais pas programmé le truc de cette manière mais comme je l'ai déjà dit je dois assouplir les règles étant donnée l'aspect travail d'équipe. Mais bon, il y a autant de méthodes de faire qu'il peut y avoir de programmeurs sur la planète alors ...

@djes

En passant, le lien donné plus haut pour le répertoire Thothbox n'est pas le bon :

https://pb-source-repositery.googlecode ... nk/Thotbox

Le lien correct serait plutôt :

https://pb-source-repositery.googlecode ... /Thothbox/

A+
Guimauve
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Thotbox - application collaborative de partage de codes

Message par djes »

Oui tu as raison, merci :)
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Thotbox - application collaborative de partage de codes

Message par djes »

Serait-il possible d'avoir une fonction simple pour lire et écrire les préférences... Là je m'y perds un peu :)
En passant, on peut utiliser le wiki du projet pour donner les recommandations/directives pour le code : http://code.google.com/p/pb-source-repositery/w/list
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

djes a écrit :Serait-il possible d'avoir une fonction simple pour lire et écrire les préférences... Là je m'y perds un peu :)
C'est-à-dire ? J'avais divisé le code en morceau et placé toute les variables internes nécessaires au fonctionnement du programme dans des structures. Ces dernières, sont alors lues/écrites dans le fichier préférence par l'intermédiaire de commandes dédiés. Exemple :

Code : Tout sélectionner

ReadPreferenceLanguage("Language", GetThothboxLanguage(*ThothboxA)) ; On lit les informations à propos de la langue utilisé par l'utilisateur
ReadPreferenceWindow("Window", GetThothboxWindow(*ThothboxA)) ; On lit les informations à propos de la fenêtre principale (Position X et Y)
ReadPreferenceConnection("Connection", GetThothboxConnection(*ThothboxA)) ; On lit les informations à propos des paramètres de connexion (Et le proxy qui est nécessaire dans certain cas)
Comment faire plus clair, personnellement, je ne vois pas 8O
Donne un exemple pour que je puisse comprendre, parce que là je suis complètement largué ?

En passant, au cas où ce ne serait pas clair, j'utilise un style de programmation objet connue sous le nom de PBO et non POO. PBO ou Programmation Basé Objet était une technique utilisé en C avant l'apparition du C++. La technique PBO est vraiment ce qu'il y a de mieux lorsque l'on programme avec PB puisque la PBO se base sur les Structures et les pointeurs qui sont, inutile de le rappeler, très exactement disponible dans PureBasic de façon native sans être contraint à faire la passe du saint esprit pour arriver à faire fonctionner le code.

A+
Guimauve
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Thotbox - application collaborative de partage de codes

Message par djes »

Oui, c'est ce que j'avais cru comprendre... Mais que dois-je incorporer dans mon source pour pouvoir faire ça?
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

Dis moi, tu travail sous Windows ?

Je pense qu'il serait sage de terminer mon utilitaire Dev-Type pour Windows, ce qui ne devrait pas être très long puisque le code était originalement pour cette plate forme. C'est d'ailleurs ma mission pour ce week-end, finaliser Dev-Type pour Windows XP et peut-être Seven si j'ai la chance.

À ta question, comment utiliser cette technique dans la partie du code sur laquelle tu travail. La réponse est simple, regroupe les variables globales (Incluant les Dim, les List et les Map) dans une ou plusieurs structures de façon logique. Par la suite et dans l'optique d'avoir un code clair (à mon sens attention) les commandes sont nommées comme suit

Action - Nom Structure (Pointeur, Paramètre) --> Si des paramètres sont nécessaire
Action - Nom Structure - Nom de Champs (Pointeur, Paramètre) --> Si des paramètres sont nécessaire

Action - Wrap commande PB - Nom Structure (Paramètres, Pointeur) --> Ici le Paramètres est avant le pointeur pour avoir une forme similaire aux commandes internes de PB :

WriteLong(FileID.l, Valeur.l)
WriteWindow(FileID.l, *WindowA.Window)

Ou encore :

ReadPreferenceLong(Clef$, ValeurParDefaut)
ReadPreferenceWindow(GroupName.s, *WindowA.Window)

Il y a également dans les codes sources que j'ai donnée, des macros Set et Get

GetWindowX(WindowA)
GetWindowY(WindowA)
...

SetWindowX(WindowA, P_x)
SetWindowY(WindowA, P_y)
...

Elles sont utiles cacher le chemin d'accès au champs, le pourquoi de faire ça est long a expliquer mais si tu es programmeur Pro tu devrait savoir pourquoi mais ne te tape le travaille de Moine. Pour le moment, tu peux t'inspirer des commandes présentes dans les codes déjà présente comme les Reset-Nom Structure(Nom-StructureA)*, WritePreference-Nom Structure(GroupName.s, *Nom structureA.Nom structure) etc. La semaine prochaine ceux qui le souhaite pourront passer les structures à la moulinette (Dev-Type) et vraiment finalisé les parties du code.

Je suis désolé de pas être capable de faire plus vite mais corriger 24 550 lignes code c'est long sans oublié que j'ai ajouté des fonctionnalités de dernière minute !

A+
Guimauve

* Si la structure ne contient pas de pointeur vers des blocs mémoires (AllocateMemory()) un simple ClearStructure() fait le travail.
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Re: Thotbox - application collaborative de partage de codes

Message par djes »

Ok, je te laisse faire cette réorganisation, on voit ça après! Prends ton temps :)
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Re: Thotbox - application collaborative de partage de codes

Message par Guimauve »

Bonjour à tous,

Est-ce que quelqu'un peut placer des fichiers sources (2 ou 3 fichiers) sur le serveur afin que je puisse tester le chargement des fichiers.

Merci à l'avance.
Guimauve
Répondre