[Aide Ada][Computerman] Appel à contribution. (projet facile)

Bonjour,

Pour ce qui connaisse le forum, vous êtes certainement tombé sur aish, une recherche d’intelligence sur Debian.

Je suis amateur en programmation, j’ai 30 ans de bouteille et j’écris quasiment qu’avec le langage Ada.

J’ai récemment fait aish et là je recommence un 10 projet environ, qui s’appelle « Computerman ».

Pour le moment, c’est 12 mode accessible dont seuls l’interpreteur de commande pris dans aish et un séquenceur MIDI sont implémentés.

Je propose que vous participiez à ce projet sous gpl et open source pour tirer le mieux d’un travail en équipe.

Mais moi je bosse quand même, je vous attends pas particulièrement.

Ce projet c’est 1 an h/m.

Les dernières archives de sources seront dispo sur computerman.html

A votre disposition pour la suite.

Le programme est donc décrit par un fichier Abstract.txt :
computerman is multiway user tools

Le projet est hébergé sur sourceforge.net

Le mode par défaut est l’interpreteur de commande.
Le mode Auth devrait être implémenté d’ici deux jour.
Après il y a un mois de travail pour chacun des modes pour une première version avec les 12 modes.
Après 1 an, l’interpreteur devrait se voir doté d’un minimum de service supplémentaire pour atteindre une version 2 en un an aussi (autre perspective).

12 modes plus le mode par defaut (interpreteur de commande) et le mode d’authetification :
(MIDI sequencer, Games, Editor, MoneyBox, Project Manager, Activity, Contacts, Planning, Stocks, Accounting, Dialog, Library.

un bug qui met en gras mon message m’empèche de poster.

Bonjour,

Je vous invite à m’apporter vos lumière concernant un petit bout de bash que vous pourez tester éventuellement.

Il sagit d’une d’un dialogue avec l’utilisateur juste pour m’amuser avec vous.
J’ai pas testé le script.

#!/usr/bin/bash
echo "2.1.2r" >> Version.lst
# Upgrade Version from Versions
make prepare project
# Add minimal PragmARC libraies in archives.
make clean mrproper enlight-sources
make arch
# You can redistribute this or bellow make it !
make head tail msg
./configure.sh
Top=55
if [ -f bin/computerman ]; then   
    bin/computerman -h;
    bin/computerman -v;
    echo "Would you like give your money ?";
    read Initial_Line ;
    if [ $Initial_Line != "no"]; then
        echo "Shall we play a game ?";
        read Initial_Line ;
        if [ $Initial_Line !=  "no"]; then
            echo Have you $TOP£ ?
            read Initial_Line ;
            if [ $Initial_Line == "no" ]; then
                echo "That don't the gravity!";
                bin/computerman -v;
                bin/computerman -t;
            elif [ $Initial_Line == "yes" ]; then
                bin/computerman -i 10.0;
            elif [ $Initial_Line == "Yes" ]; then
                 bin/computerman -i 10.0;
            elif [ $Initial_Line == "YES" ]; then
                bin/computerman -i 10.0;
            elif [ $Initial_Line == "oui" ]; then
                 bin/computerman -a 10.0;
            elif [ $Initial_Line ==  "Combien ?" ]; then
                while ($Initial_Line == "Combien ?") do
                      Let $TOP=$TOP-5;
                      echo Have you $TOP£ ?;
                      read Initial_Line ;
                      if [ $Initial_Line == "" ]; then
                          bin/computerman -i $TOP;
                      elif [ $TOP -eq 0 ]; then
                          exit;
                      else
                          Let $TOP=$TOP+3;
                          echo Have you $TOP£ ?
                          read Initial_Line ;
                      fi;
                done;
                      
                fi;
                      else
                          echo "Sorry ! I\'m going to arch target.";
                          make arch;
                fi;
                      else
                          make arch;
                fi;
                      else
                          make msg all;
                          ./configure.sh
                          if [ -f ./bin/computerman ]; then
                              ./bin/computerman;
                          fi;
                fi;

Le script s’appelle backup.sh, il est pas exécutable et je voudrez savoir si je peux ajouter un tel script dans un projet open source sous License GPL ?

S’il vous plait ?

Explication du script :

Ca a mis la version dans dans la list de versions.
Ca mis le projet à jour selon le ficher Project.lst qui contient la list de bibliothèques.
clean et mrproper sont connus.
arch, ça a créé une archive
les cibles tail head sont des utilitaires maison
la cible msg est le programme hello et affiche un message « Hello user » (lequl n’est pas utliser - les lignes des version 2.1.1 sont
commentées).
./configure copy les cibles all et msg dans $HOME/bin après avoir créé $HOME/bin si le répertoire n’exite pas.
après je vous laisse lire, c’est rigolot. (si ça marche).

Bon! C’est pas le but, bien que j’ai classé le programme dans la catégorie game, je pense pas le laisser, c’est peut-être pratique et, amusant quand même un moment.

Ca a pas fonctionné.
Une erreur de text. il manque un s au nomde version Version.lst.

Le fonctionnement anormal est du à un échec de mrproper.
Un dialogue visant ou pas à affecter Total_Sum est engagé avec un air de Wargames.
Ca peut boucler un nombre de fois certain ; Je ne sais pas combien si on répond « Combien ? ».

Pensez à mettre à jour la version dans backup.sh en même que dans Versions.lst si vous recevez la version 2.1.2r et avez l’intention d’utiliser ce script.

Jerigole de ma propre bêtise… J’ose pas tester !

Le programme fonctionne normalement ! j’en profite.

make mrproper fonctionne ; C’est l’essentiel. :wink:

Bonsoir aux couches tard et bonjour aux lèves tôt.

Je suis en train d’écrire la partie comptable de mon pogramme.
Le paquetage est nommé accountant.
Je voudrais savoir ; Si vous voyez les chose de façon plus complexe ou plus simple selon quelle approche ; au minimum, que manque - t - il pour faire ma comptabilité ?

Le paquetage dépend de du paquetage Balance :
pragma Shared_Passive (Computer.Balance);

   type Balance_Record is
      record
         Capital     : Total_Type := 0.0;
         Material    : Total_Type := 0.0;
         TVA_In      : Total_Type := 0.0;
         TVA_Out     : Total_Type := 0.0;
      end record;
   
   Balance       : Balance_Record;

Le spécification du paquetage accountant :

with Ada.Calendar;
use Ada.Calendar;
with Computer.Balance;
use Computer.Balance;
package Computer.Accountant is
   
   
   subtype Account_Line_range is Natural range Natural'First..Natural'Last;
   
   
   
   type Account_Line_Type is tagged
      record
         Line_Num      : Account_Line_Range := 0;
         Date          : Time := Clock;
         Elaps         : Time := Clock;
         Description   : Wstring_16 := (others => ' ');
         Account_num   : Account_Num_Range := 10;
         Unit_Ht_Price : Fixed_Unit_Ht := 0.0;   
         TVA_Factor    : Fixed_Factor := 0.0;
         Quantity      : Quantity_Range := 0.0;
         Total_Ht      : Fixed_Total := 0.0;
         Total_Ttc     : Fixed_Total := 0.0;
         Delays        : Payment_Delay := 0;
         Peer_name     : Wstring_32 := (others => ' ');  
      end record;
   
  Null_Line : constant Account_Line_Type :=
     (0,
      Time_Of(1970, 01, 01, 0.0),
      Time_Of(1970, 01, 01, 0.0),
      (others => Wide_Character'Val(32)),
      10,
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      0,
      (others => Wide_Character'Val(32))
     );
   
   
   type Account_Line_Array is array (Account_Line_Range range <>) of Account_Line_Type;
   
   
   
   type Abstracted_Voice(Lines_Max : Account_Line_Range) is abstract tagged
     record
        Accounting     : Account_Line_Array(1..Lines_Max) := (others => Null_Line);
        Line_Last      : Account_Line_Range := 0;
        Name           : Product_Name := (others => ' ');
        Acc_Num        : Account_Num_Range := 0;
        Unit_Ht_Price  : Fixed_Unit_HT := 0.0;
        TVA            : Fixed_Factor := 0.0;
        Qt             : Quantity_Range := 0.0;
        Total_Ht       : Fixed_Total := 0.0;
        Total_TTC_Win  : Fixed_Total := 0.0;
        Peer_Win       : Wstring_32 := (others => ' ');
     end record;
   
   subtype Invoice_Num_Range is Natural range Natural'First..Natural'Last;
   subtype Outvoice_Num_Range is Natural range Natural'First..Natural'Last;
 type Invoice_record is new Abstracted_Voice(256) with
      record
         Invoice_Num   : Invoice_Num_Range := 0;
      end record;
   
   
   type Outvoice_Record is new Abstracted_Voice(256) with
      record
         Outvoice_Num   : Outvoice_Num_Range := 0;
      end record;
   
   procedure Create(Activity : out Balance_Record;
                    From : in Outvoice_Record);
   -- Write all account_line to State.
   -- Check Outvoice with accounting.

   procedure billed(Activity : in out Balance_Record;
                    Invoice : in Invoice_Record;
                    Account : out Account_Num_Range;
                    Payed : out Boolean);

– if Is_Payed(Invoice) then must be added to account num

   procedure Charge(Activity : in out Balance_Record;
                    Outvoice : in Outvoice_Record;
                    Account  : out Account_Num_Range;
                    Payed : out Boolean);

– if Is_Payed(Outvoice) then must be added to account num

   Null_Invoice : constant Invoice_Record :=
     (512,
      (others => Null_Line),
      0,
      (others => ' '),
      0,      
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      (others => ' '),
      0
      );

   Null_Outvoice : constant Outvoice_Record :=
     (512, (others => Null_Line),
      0,
      (others => ' '),
      0,      
      0.0,
      0.0,
      0.0,
      0.0,
      0.0,
      (others => ' '),
      0
      );

   type Invoice_Array is array (Invoice_Num_Range range <>) of Invoice_Record;
   type Outvoice_Array is array (Invoice_Num_Range range <>) of Outvoice_Record;
   
   
   type Accounting_Record(Deal_Max : Positive) is
     record
        Billed : Invoice_Array(1..Deal_Max);
        Charge : outvoice_Array(1..Deal_Max);
     end record;

   procedure Open(Activity : in out Balance_Record);
         
   procedure Close(Activity : in out Balance_Record);
   
   

   
   
end Computer.Accountant ;

S’il vous plait ?

Merci.

Petite erreur dans Null_Invoice et Nul_Outvoice pour lesquels la valeur de Voice_max devrait être 256 et non 512.

(Edit je replace les commentaires là où ils devraient êtres.)

Bonjour,

J’ai implementé une première version de moneybox qui permet d’ajouter une ligne au plan comptable.

Le « module » Activity n’est pas fait, ce qui faiit qu’au bout de quelque ligne, impossible de poursuivre pour le moment. C’est la prochaine action à mener.
En suite il faudrait faire le « module » Stock pour pouvoir débiter les stocks via money box.

money box, c’est une fonction Line Add pour ajouter des ventes ou des achats à un ticket.

MoneyBox :
The benefit are immediatly added to the Activity capital when you open the Activity with the first dealout
Ctrl+T to charge current dealout or to pay the Billed dealin.
The activity is close in Activity mode (F6)
Ctrl+A to Abort deal
Ctrl+E to Erase ticket line.
Vous pouvez suivre Computerman sur « sourceforge.net » et sur « inconito.net ».

Re…

Entre autres, y a ça à faire en premier lieu :
Edit ticket line
Save ticket

Activity Page_Up
Activity Page_Down
Activity Search

Stocks Add_Stock Remove_Stock, Add_To_Stockn Remove_From_Stock

Manager create project
Manager edit
Manager compile
manager archive

Accounting
Library

Si quelqu’un ce dévoue ici pour faire Activity, Accouting j’attaque le manager.

Bonjour, Bon café ?

J’ai écrit pour mon langage un utilitaire pour créer des projet.

Je me suis fait une série de script, bon, j’ai galéré pour rien, exemple, j’ai écrit le scrip lp alors que les caractères joker font ça en ligne de commande.

Mais j’aifini par fair une simple boucle while (true) avec quelque instruction d’appel à d’autres scripts que voici (le make file est dispo dans mon projet Ada_Empty pour lequel j’ai écrit une publication plus haut dans cette catégorie du forum) : (create.sh start.sh make_project.sh)

create.sh
emacs lp ads && lp adb $1/computerman/computerman/src/computerman.adb
. $1/make_project.sh

start.sh
#!/usr/bin/bash
while (true) do

      bash;
      man computerman;
      . ./create.sh $1;
      su -c "cp $1/doc/man/man1/computerman.1.gz /usr/share/man/man1";
      make -C $1 head tail msg all enlight-source
      make -C $1 clean
      $1/bin/computerman
      tar -c -v -z -f $1.tgz $1
      echo Stop
      read STOP
      if [ $STOP == "true" ]; then
          break;
      fi;      
done;

make_project.sh
#!/usr/bin/bash
emacs $1/computerman/computerman/src/computerman.adb lp ads && lp adb
emacs $1/HOWTO
emacs $1/HISTORY
emacs $1/Versions.lst
make -C $1 mrproper
make -C $1 enlight-sources

gunzip $1/doc/man/man1/computerman.1.gz
emacs $1/doc/man/man1/computerman.1
gzip $1/doc/man/man1/computerman.1
man2html $1/doc/man/man1/computerman.1.gz > $1/web/html/computerman.1.html
echo "Press enter to conitue."
read ENTER;
emacs $1/web/html/computerman.html
emacs $1/Makefile
make -C $1 arch

Il est buggé ce forum.

C’est toi qui est buggé :slightly_frowning_face:

C’est douteux comme commentaire.

Tous comme tes propos qui au passage ont irrité plus d’une personne :wink:

Bonjour,

Je suis sensé avoir terminer la partie comptabilité avec la version 2.5.0a.

A l’ouverture du programme, vous devez faire une vente pour initialiser le capiital.

Vous pouvez en suite faire vos achats et vos ventes.

La fermeture de l’entreprise ce fait avec Ctl+T en mode Activity.

Les stocks sont approvisonnés et débités automatiquement.

Bonne journée.

Je suis arrivé à 2.5.2a

Juste un truc.

J’ai mis récemment la caisse, l’activité et le stock respectivement sur F5 F6 F7.

Avant de télécharger l’archive, je vous invite à visiter le site inconito.net.

Les stocks sont créés au premiers achat. Les stocks sont maintenue avec les achats et les ventes.

A chaque démarage, on doit ouvrire l’entreprise avec une écriture comptable pour initialiser le programme.
Tipyquement la première initialisation est d’un total TTC > 0 et est ajouté au capital avec le compte 10.
Les vente sont comptabilisé au compte 707 et les achat au 607.

Bonsoir,

Je termine la première version du manager.
Pour le moment, j’utilise mes scripts bash pour upgrader un projet.

Dépend de Emacs.

Bonjour
J’ai besoin de votre avis sur le manager.

Qui a essayé ?

Bonjour ou bonsoir.

La version 3.5.33 est disponible et permet une gestion simple des projets grace à la maintenance d’une liste de projets archivés utilisant les touche Tabulation et Backspace.

Ce projet est un réel plaisir bien que le partie Upgrade soit à upgrader.