Warning

int main(int argc, char * args[]) {
  // Dear Programmer
  // When I wrote this code, only God and
  // I knew how it worked.
  // Now only God knows it!
  //
  // Therefore, if you are trying to optimize
  // this routine and it fails (most surely),
  // please increase this counter as a
  // warning for the next person:
  //
  // total_hours_wasted_here = 254
}

SWAG at markreds.it

Pascal is an imperative e procedural high level programming language. I learnt it at high school and developed applications with Borland Delphi for many years in my first employment.

The Macintosh System OS (the classic one) was developed in Pascal and Apple released its official documentation keeping this language as main reference to developers that wanted to develop for its platform.

Fews days ago I’ve found an interesting site about Pascal programming with lots of examples called SWAG (Sourceware Archive Group).

SWAG is a collection of source code and program examples for the PASCAL programming language. The material has been donated by various PASCAL programmers from around the world, who desire to contribute to the advancement of one of the greatest programming languages there is. SWAG packets are available in 57 different categories covering EVERY aspect of the PASCAL language, and ALL ABSOLUTELY FREE !!! … The material contained in SWAG is intended to be a teaching and learning aid for users of the PASCAL language. Whether you are a beginner or experienced programmer, you’ll find SWAG to be an invaluable source of ideas and information.

So I’ve decided to keep a copy of the last SWAG release. Click here to start reading.

Installare un server svn su debian 10/9/8

SVN è un sistema open source di controllo della versione creato dalla Apache Foundation Team. Permette di tenere traccia di tutte le modifiche effettuate su una raccolta di file e cartelle. Ogni volta che modifichi, aggiungi o elimini un file o una cartella dentro un repository locale che gestisci con Subversion e invii queste modifiche al tuo repository Subversion sul server, viene creata una nuova revisione che riflette queste modifiche. Subversion permette di tornare sempre indietro, guardare e ottenere il contenuto delle revisioni precedenti.

Anche se Subversion è in grado di gestire qualunque genere di file (sia di testo che binario) viene usato in modo particolare con i repository contenente codice sorgente.

Vediamo come si configura Subversion (svn) su un server basato sui sistemi operativi Debian 10, Debian 9 e Debian 8.

1° passo: installare Apache

Per prima cosa occorre installare il server web Apache, necessario ai moduli di Subversion che installeremo successivamente. Aprire quindi una console dei comandi e digitare in sequenza:

$ sudo apt-get update
$ sudo apt-get install apache2

2° passo: installare SVN

Procediamo con l’installazione dei pacchetti di Subversion. Dopodiché riavviamo anche il server Apache:

$ sudo apt-get install subversion libapache2-mod-svn libapache2-svn libsvn-dev
$ sudo a2enmod dav sudo a2enmod dav_svn
$ sudo service apache2 restart

3° passo: configurare Apache e SVN

Adesso occorre modificare alcuni file di configurazione per abilitare le funzioni necessarie. Editiamo per primo il file /etc/apache2/mods-enabled/dav_svn.conf e aggiungiamo le seguenti righe:

<Location /svn>
   DAV svn
   SVNParentPath /var/lib/svn

   AuthType Basic
   AuthName "Subversion Repository"
   AuthUserFile /etc/apache2/dav_svn.passwd
   Require valid-user
</Location>

4° passo: creare il repository SVN

Adesso digitare i seguenti comandi per creare il nostro repository usando il nome myrepo. Naturalmente usatene uno più adatto alle vostre esigenze:

$ sudo mkdir -p /var/lib/svn/
$ sudo svnadmin create /var/lib/svn/myrepo

$ sudo chown -R www-data:www-data /var/lib/svn
$ sudo chmod -R 775 /var/lib/svn

5° passo: creare gli utenti

E’ possibile limitare e proteggere il nostro repository limitandone l’accesso solo agli utenti autorizzati. Scriviamo questi comandi per creare il primo utente:

$ sudo htpasswd -cm /etc/apache2/dav_svn.passwd admin

Aggiungiamo altri utenti:

$ sudo htpasswd -m /etc/apache2/dav_svn.passwd user1
$ sudo htpasswd -m /etc/apache2/dav_svn.passwd user2

6° passo: accedere al repository dal browser web

Apriamo il browser e andiamo al seguente url:

http://example.com/svn/myrepo

Ci verrà chiesto di inserire le nostre credenziali di accesso (nome utente e password).

A questo punto non ci resta che eseguire il checkout del nostro repository in locale, aggiungere e modificare file, quindi inviare le modifiche al server (in gergo commit). Potremmo farlo da riga di comando ma suggerisco di usare gli strumenti integrati degli IDE di sviluppo oppure utilizzare un front-end specifico che si integri con l’ambiente desktop. In ambito Windows suggerisco di usare Tortoise SVN.