CrunchBang Linux lascia Ubuntu passa a Debian


Ho ritenuto importante portare in evidenza questa notizia poiché credo che ricalchi per bene la situazione paradossale creatasi per le parole e le azioni di Mark Shuttleworth e della direzione di Canonical.


CrunchBang Linux, per chi non lo sapesse, è una distro che ha l’obiettivo di portare il famoso window manager OpenBox su i desktop degli utenti in maniera facile essendo una distribuzione con tale ambiente già installato e preconfigurato.
Essa è rivolta sopratutto a computer datati, con poche risorse o con hardware obsoleto vista la scarsa richiesta di requisiti minimi dei quali essa necessita.

Fin dalla sua nascita, CrunchBang Linux era basata su l’ultima versione di Ubuntu in maniera tale da fornire agli utenti un sistema noto e ben supportato dalle web comunity. Da quanto si può leggere ora, invece, sulla pagina ufficiale delle news, la distribuzione sarà basata su Debian e precisamente sul suo ramo testing che attualmente è Debian 6, nome in codice Squeeze.


Per quale motivo si ha tale cambiamento? Forse i rilasci troppo frequenti di Ubuntu erano un peso per lo sviluppo della distribuzione o forse le nuove mosse dell’alta dirigenza sud africana iniziano a pesare su i piccoli sviluppatori di derivate?
Forse non lo sapremo ma fatto sta che le scelte e le parole anti democratiche di Shuttleworth non hanno favorito per niente la creazione di un clima solidale su cui Ubuntu dice di nascere e crescere.

I soldi rovinano anche le idee più brillanti e forse la celeberrima distro ne è una forte testimonianza.

Spero di sbagliarmi per il bene della libertà del campo informatico.


Gambas: Passaggio parametri variabili ad una funzione


Quando si programmano software un pò più avanzati si deve tener conto che non tutto nella vita può essere definito a priori.
Basti immaginare a chi sviluppa una semplice calcolatrice da riga di comando. Molte volte ho visto questo esempio ma l’errore sempre ricorrente era quello di accettare sempre e solo due parametri numerici ai quali applicare l’operazione prescelta. La cosa è molto utile dal lato sviluppo ma davvero poco professionale dal lato utenza.

Qualsiasi linguaggio che si rispetti da la possibilità a chi programma di scrivere funzioni che accettano anche parametri senza prima definirne l’esatte numero, semplicemente scrivendo un prototipo che indichi al sistema che tale funzione accetta parametri ma ne accetta tanti quanti l’utente ne inserisce.

Questo modo di programmare è davvero utile e flessibile e toglie dall’imbarazzo di dover specificare nei propri programmi che una certa operazione può essere eseguita solo tra due dati alla volta.

In Gambas, svolgere tale compito è davvero semplice e vedremo ora come fare.

Il passaggio indefinito di parametri prevede una struttura della funzione uguale a quelle a cui siamo abituati con una differenza nella dichiarazione dei parametri da passare in fase di esecuzione. Immaginiamo di avere la nostra funzione di nome FAddizione che deve sommare tutti i numeri interi passati come parametri (di cui ovviamente non sappiamo il numero a priori) e ne deve restituire la somma intera. Il prototipo di tale funzione sara quindi:

FAddizione (Numero1 AS Integer, Numero2 AS Integer, …) AS Integer

Innanzitutto vediamo che la definizione prevede un costrutto del tutto simile ad una normale funzione, con la differenza che il terzo parametro viene definito come una serie di tre punti ( … ) che sta ad indicare al linguaggio che dopo Numero2 non si sa quanti altri parametri verranno sottoposti ad operazione.
Si noti che i primi due parametri, ovvero Numero1 e Numero2, vengono definiti esplicitamente per il semplice fatto che non ha senso effettuare una somma se non ci sono almeno due numeri su cui effettuare l’operazione.

Il codice che eseguirà il lavoro voluto è il seguente:

FAddizione (Numero1 AS Integer, Numero2 AS Integer, …) AS Integer

DIM Elemento AS Integer
DIM Risultato AS Integer

Risultato = Numero1 + Numero2

FOR EACH Elemento IN Param
Risultato = Risultato + Elemento
NEXT

RETURN Risultato

END

Dunque, come si vede la funzione, come primo passo, somma i due numeri passati esplicitamente alla funzione mediante l’operazione

Risultato = Numero1 + Numero2

Fatto ciò scorre tutti gli altri elementi passati alla funzione, non definiti, mediante il ciclo FOR EACH. Si vede infatti che è stato definito un intero all’interno della funzione di nome Elemento che indica di volta in volta nel ciclo un nuovo elemento presente in Param. Elemento viene sommato a Risultato che aggiorna, di volta in volta, il suo valore con il proprio valore precedente sommato al nuovo parametro.

Apriamo una parentesi. Param è una classe statica, di sola lettura, interna di Gambas che prevede la gestione di tutti gli extra-parametri di una funzione. Essa gode di alcune proprietà che agevolano il trattamento di questa particolare situazione.
Nel nostro caso sfruttiamo la particolarità della classe di essere enumerabile mediante il ciclo FOR EACH e di scorrerla quindi finchè c’è un dato da leggere.

Tornando al codice si può vedere come con l’istruzione:

RETURN Risultato

Restituisce alla fine di tutto il dato voluto.

CONSIDERAZIONI

L’uso di questo tipo di struttura e del suo costrutto deve diventare una prassi per i codici che richiedono la risoluzione di questi tipi di situazioni poichè può accadere che all’utente serva passare un grosso numero di parametri e si costringerebbe chi opera sul nostro software a creare numerosi cicli, dispendiosi in termini di tempo, per effettuare semplici operazioni.

Ovviamente rimango a vostra disposizione per chiarimenti in merito a questo articolo.

Numerazione pagine openoffice

Ultimamente stavo scrivendo una guida per un mio software e ho incontrato un insolito dilemma che non mi ero mai posto prima. Ero difronte ad un immenso problema di carattere grafico e dovevo arrivare ad una soluzione il più presto possibile perchè i tempi correvano e il programma aveva bisogno di una bibbia che ne mendicasse le infinite funzionalità. Il problema era la numerazione delle pagina. Quando, infatti, con openoffice andavo a porre il numeretto sulle pagine esso partiva ovviamente dalla prima che però conteneva la copertina. Sinceramente il problema non era così preoccupante ma un libro col numero in copertina non lo vedevo dai tempi delle giovani marmotte.


Per chiunque, come me, avesse voglia di numerare le pagina partendo da una pagina diversa dalla prima, spiegherò in pochi semplici passi come fare:

PRIMO PASSO

Apriamo il documento e dal menu selezioniamo Inserisci -> Piè di pagina -> Predefinito
Avremo in questo modo una piccola area infondo alla pagina verrà scritto automaticamente il numero di pagina.

SECONDO PASSO

Portare il puntatore del mouse nel piè di pagina appena creato e cliccare in modo che ora il cursore lampeggi in questa zona.

TERZO PASSO

Da menu selezionare Inserisci -> Comando di campo -> Altro. Ci troveremo di fronte ad una finestra. Nelle tre liste con un semplice click selezioniamo (da sinistra a destra) Pagina – Numero di pagina – Come stile di pagina.
Nella casella di testo contrassegnata dall’etichetta Correzione inseriremo il numero di pagine iniziali che vogliamo escludere dalla numerazione precedute dal segno meno – . Questo vuol dire che se si vuole far partire la numerazione dalla quinta pagina dobbiamo inserire -4 poichè sono proprio quattro le pagine escluse.


QUARTO PASSO

Cliccare sul button Inserisci e chiudere la finestra.

A questo punto l’operazione è concluso e il nostro documento avrà la numerazione come proprio i libri scritti dalla gente seria.