[PLUTO-ildp] Prima parte di traduzione
Vitantonio Messa
vitantonio.messa a gmail.com
Gio 12 Lug 2007 18:49:00 CEST
Ciao a tutti,
come mi era stato suggerito di fare, riporto l'inizio della mia
traduzione... aspetto critiche/consigli/suggerimenti.
Vito
----------
Designing Integrated High Quality Linux Applications
1. Introduction
Linux is becoming more and more popular, and many Software vendors are
porting their products from other platformas. This document (article)
tries to clarify some issues and give tips on how to create Linux
applications highly integrated to the Operating System, security and
easy of use.
The examples run on Red Hat Linux, and should be compatible with other
distributions based on Red Hat (Conectiva, Turbolinux, Caldera, PLD,
Mandrake, etc).
2. User Friendly: Guaranteed Success
The user-friendly concept is missassociated with a good GUI (graphical
user interface). In fact, it is much more than that. In systems like
Linux (with more server-like characteristics), the user measures how
easy a Software is, mainly in the installation and initial
configuration. He can even forget how easy were to install and use a
certain product, but it will never forget that a Software package has a
complex configuration and installation process. A migration or new
installation allways will be a nightmare, making the user avoid it.
2.1. Embrace the Install-and-Use Paradigm
Imagine you'll install that expansive product your company bought from
ACME, and realized you'll have to do the following:
1. To have a manual that shows the installation process step-by-step.
We know that a manual is the last thing the user reads
2. Read some README files
3. Uncompress huge files in your disk (after downloading them from
net our CD), to create the installation environment
4. Read more README files that appeared in the installation environment
5. Comprehend that the installation requires you to execute in a
special way some provided script (the inconvenient ./install.sh)
6. Uncomfortably answer some questions that the script does, like
target directory, user for the installation, etc. To make it worse, it
frequently happens in a terminal that has a missconfigured backspace
7. After the installation, configure some environment variables in
your profile, like $PATH, $LIBPATH, $ACMEPROGRAM_DATA_DIR,
$ACMEPROGRAM_BIN_DIR, etc
8. Edit OS files to include the presence of the new product (e.g.
/etc/inetd.conf, /etc/inittab)
9. And the worse: Change security permissions of OS directories and
files to let the product run OK
Sounds familiar? Who never faced this sad situation, that inducts the
user to make mistakes? If your products' installation process sound like
Uncompress-Copy-Configure-ConfigureMore-Use, like this one, you have a
problem, and the user won't like it.
Users like to feel that your Product integrates well with the OS. You
should not demand that the OS adapt himself to your Product (changing
environment variables, etc). It must let the user Install-and-Use.
The Install-And-Use glory is easily achieved using a 3 ingredients receipt:
1. Understanding the Four Universal Parts of Any Software
2. Understanding how they are related to Linux's directory hierarchy
3. Aggressively use a package system, for process automation and
leverage first items. In our case is RPM.
We'll discuss here what are these ingredients and how to implement them.
----------
Progettare applicazioni ad alta qualità integrate in Linux
1. Introduzione
Linux diventa sempre più popolare e molti produttori di software migrano
i loro prodotti da altre piattaforme. Questo documento (articolo) cerca
di chiarire alcuni problemi e dà consigli su come creare applicazioni
Linux altamente integrate nel Sistema Operativo, sulla sicurezza e sulla
facilità d'uso.
Gli esempi sono eseguiti su Red Hat Linux e dovrebbero essere
compatibili con altre distribuzioni basate su Red Hat (Conectiva,
Turbolinux, Caldera, PLD, Mandrake, etc).
2. Semplicità d'uso: successo garantito
La semplicità d'uso è un concetto erroneamente associato a quello di una
buona interfaccia grafica (GUI). In effetti, è molto di più. In sistemi
come Linux (con più caratteristiche simili ai server), l'utente misura
quanto un software sia semplice principalmente durante la fase di
installazione e quella di configurazione iniziale. L'utente può anche
dimenticare quanto sia stato facile installare ed usare un certo
prodotto, ma non dimenticherà certamente un software con un processo di
configurazione ed installazione complicati. Migrazioni o nuove
installazioni saranno sempre un incubo, invogliando l'utente ad evitarle.
2.1. Abbracciare il paradigma Installa-e-Usa
Immaginare l'installazione di un constoso prodotto che l'azienda ha
acquistato da ACME, ed accorgersi che bisogna:
1. Avere un manuale che spieghi il processo di installazione passo
per passo. E` noto che il manuale è l'ultima cosa che l'utente legge
2. Leggere alcuni file README
3. Decomprimere grandi file su disco rigido (dopo averli scaricati da
rete o da CD), per creare l'ambiente di installazione
4. Leggere altri file README che compaiono nell'ambiente di installazione
5. Comprendere che l'installazione richiede di eseguire in un modo
specifico alcuni script forniti (lo scomodo ./install.sh)
6. Rispondere scomodamente ad alcune domande che lo script pone, come
la cartella d'installazione, l'utente che utilizzerà il software, etc.
Per peggiorare il tutto, questo accade spesso in un terminale con il
tasto cancella malconfigurato
7. Dopo l'installazione, configurare alcune variabili d'ambiente nel
profilo utente, come $PATH, $LIBPATH, $ACMEPROGRAM_DATA_DIR,
$ACMEPROGRAM_BIN_DIR, etc
8. Modificare file del SO per includere la presenza del nuovo
software (ad es. /etc/inetd.conf, /etc/inittab)
9. Infine la situazione peggiore: dover cambiare permessi di
sicurezza a cartelle e file del SO per far funzionare correttamente il
software
Suona famialiare? Chi non si è mai imbattuto in questa spiacevole
situazione, che induce l'utente a fare errori? Se il processo di
installazione del prodotto ricalca il percorso
Decomprimi-Copia-Configura-ConfiguraAncora-Usa, come questo esempio, ci
sono problemi, ed l'utente non apprezzerà il software.
All'utente piace l'idea che il prodotto si integri bene con il Sistema
Operativo. Non si dovrebbe chiedere al SO di adattarsi al prodotto
(cambiando variabili d'ambiente, etc). Il prodotto deve essere
Installa-e-Usa.
La gloria dell'Installa-e-Usa è facilmente ottenuta con una ricetta a 3
ingredienti:
1. Capire le quattro componenti universali di ogni software
2. Capire come sono legate alla gerarchia delle cartelle di Linux
3. Usare fortemente un sistema di impacchettamento, per l'automazione
del processo e per usare a proprio vantaggio i primi due punti. In
questa guida sarà RPM.
Segue una descrizione di cosa sono questi ingredienti e di come
implementarli.
Maggiori informazioni sulla lista
pluto-ildp