docky e la barra nera

Ho provato ad installare docky.

docky

docky agganciato al lato sinistro del desktop

L’installazione avviene tramite apt o synaptic:

# apt-get install docky

Unico inconveniente iniziale è la presenza di una fastidiosissima fascia nera a lato (o sotto, a seconda del punto in cui abbiamo agganciato docky). Di questo veniamo anche avvisati da un messaggio che recita più o meno così “…enable composting…“. Per ovviare al problema è necessario un Compositing window manager. Per abilitarlo in Metacity agire come segue:

– lanciamo gconf-editor:

$ gconf-editor

Sul frame di sinistra ci posizioniamo su “apps > metacity > general“; poi, sulla destra, spuntiamo il checkbox in corrispondenza della voce “compositing_manager“.

spuntiamo "compositing_manager"

Fatto: la barra nera dovrebbe scomparire.

Debian | creare scorciatoie da tastiera in Gnome

Per impostare scorciatoie da tastiera personalizzate in gnome (su Debian) ho trovato questa splendida spiegazione. La riassumo brevemente.

– da terminale lanciamo gconf-editor:

$ gconf-editor

– nella finestra che compare ci spostiamo sulla voce “apps > metacity > keybinding_commands

– sul pannello di destra compare un elenco di “command_nn“; selezioniamo il “command_1

selezionare keybinding_commands

– doppio clic su “command_1” e impostiamo il percorso al programma che vogliamo eseguire: nel mio caso vorrei lanciare Iceweasel quindi inserisco “/usr/bin/iceweasel

selezione del programma da lanciare

– ci spostiamo poi (nel pannello di sinistra) sulla voce “global_keybindings” , scegliamo il “command_1” scorrendo l’elenco che si presenta a destra; doppio clic su “command_1” e inseriamo la combinazione di tasti che vogliamo dare per il comando in questione: nel mio caso “<Control><Alt>i“.

impostazione della combinazione di tasti

– fatto: da ora in avanti schiacciando contemporaneamente CTRL+ALT+i si avvierà il browser web.

importare dati da tabella QGIS a LibreOffice

Se durante una sessione di lavoro con QGIS vogliamo eseguire un “copia/incolla” di dati da una tabella ad un foglio di calcolo LibreOffice puo’ succedere che i dati “incollati” presentino alcuni problemi. In particolare i dati numerici decimali (aree di oggetti poligonali per esempio) vengono mantenuti come “testo” e non numero con tutte le conseguenze negative del caso: se vogliamo fare una somma di valori ottenimao un errore.

Come fare per ovviare a tutto cio’?

Andiamo per punti:

– dalla sessione QGIS apriamo la tabella attributi del layer interessato, selezioniamo tutte o parte delle righe che ci interessano e clicchiamo sul pulsante “copia le righe selezionate nel blocco appunti” che si trova in basso a sinistra della tabella.

– apriamo una sessione di LibreOffice Calc e andiamo su “modifica > incolla” oppure “CTRL+V“;

– ci si presenta la finestra di impostazione dei dati di import che si chiama “Importazione testo” (lo vediamo scritto in alto sulla barra della finestra di popup stessa);

– su “Tipo di carattere” lasciamo “Unicode” come da default e poi scegliamo il simbolo di delimitazione (dovrebbe andare bene la “tabulazione” come proposto); a questo punto ci troviamo i nostri dati nel foglio di calcolo;

– Se schiacciamo contemporaneqmente “CTRL+F8” vedremo alcuni valori diventare blu. Sono i valori numerici. Il resto rimane nero (il testo). In verde eventuali valori calcolati da altri campi (ma essendo dati appena importati non avremo alcun campo di colore verde).

– Nel mio caso ho una colonna che riporta l’area di elementi poligonali e, ahimè, i suoi valori non diventano blu ma rimangono neri. Significa che sono dati importati come testo. Se infatti selezioniamo le celle interessate, tasdo dx e “Formatta celle…” vedremo che il tipo di dato è impostato su “testo”.

– Modifichiamo questa impostazione impostando su “categoria=numero” e “formato=standard”; in questo modo, tornando sul foglio di calcolo e selezionando una delle celle interessate vedremo che il valore indicato nella “riga di digitazione” presenta un’apostrofo all’inizio. Questo significa che la cella dovrebbe contenere numeri ma il valore inserito è un testo. Nel mio caso trovo: ‘1011.15.

– Il problema sta nel fatto che il nostro separatore dei decimali è la virgola “,” mentre i dati incollati hanno importato come separatore il punto “.”.

– Basta fare un “trova e sostituisci” (CTRL+ALT+F) sulle celle interessate e sostituire il punto con una virgola.

– A questo punto vedremo automagicamente comparire i nostri valori in blu (ergo sono diventati numeri a tutti gli effetti).

ubuntu-party a Schio | pubblicati i video

Gli organizzatori dell’Ubuntu-party che si è svolto a Schio (Vicenza) lo scorso 30 aprile e 1 maggio hanno pubblicato su Vimeo i video dei talk.

Tra i tanti c’è anche il mio soporifero intervento su “Openstreetmap – La mappa del mondo creata dal basso”; se avete difficoltà a dormire e cercate un’alternativa alla conta delle pecore andate qui :-), sarò lieto di conciliarvi…

Buona notte.

libreoffice | installazione su debian

Oggi ho provato ad installare LibreOffice. La suite per ufficio nata dopo che Oracle è entrata in possesso di OpenOffice.

Il progetto fa capo alla “The Document Foundation“. Per farla con un’equazione si potrebbe dire che:

The Document Foundation : LibreOffice = Mozilla Foundation : Firefox (citando la pagina delle FAQ che spiega molto bene questi termini)

Ad oggi sono disponibili per il download vari formati (tutti alla versione Beta del programma):

– Windows;

– Linux 32 bit;

– Linux 64 bit;

– Mac OS X;

– sorgenti.

Ho provato a scaricare la versione per Linux a 32 bit per installarla su Debian testing. I file scaricati sono .rpm (quindi non ci sono pacchettizzati per Debian) ma seguendo questa semplice ed efficace guida si arriva a destinazione. Riassumendo ecco i passi da seguire:

– installare alien per convertire i pacchetti .rpm in .deb:

# apt-get install alien

– scaricare e decomprimere i pacchetti dal sito:

– viene creata una directory “en-US”; spostiamoci in questa cartella.

$ cd en-US

– entriamo nella directory chiamata RPMS:

$ cd RPMS

– convertire gli RPM in DEB mediante alien:

# alien -k *.rpm

vengono convertiti, uno alla volta, tutti i pacchetti con generazione dei relativi .deb.

– installare i pacchetti .deb generati mediante dpkg:

# dpkg -i *.deb

– a questo punto spostarsi nella direcotory chiamata “desktop-integration”  (che si trova in RPMS) e convertire il pacchetto “libreoffice3.3-freedesktop-menus-3.3-1.noarch.rpm”:

# alien -k libreoffice3.3-freedesktop-menus-3.3-1.noarch.rpm

– otteniamo il pacchetto “libreoffice3.3-freedesktop-menus_3.3-1_all.deb” che andremo a installare:

# dpkg -i libreoffice3.3-freedesktop-menus_3.3-1_all.deb

That’s all :-). Il programma si puo’ lanciare da riga di comando:

$ libreoffice [invio]

Oppure lo troviamo tra le applicazioni per ufficio ben visibile accanto (a chi ce l’ha ancora) a openoffice. Il logo è leggermente diverso.

Ed eccolo in tutto il suo splendore 🙂

la finestra di start di LibreOffice

django! si, django!

In questo post tento di riassumere (nella maniera piu’ semplice possibile) i passi che ho seguito per creare il primo progetto con django. Da non sviluppatore e abbastanza ignorante nel campo dei linguaggi di programmazione se dovessi definire django con un aggettivo direi: disarmante!

Si ispira al principio DRY (Don’t Repeat Yourself) e la migliore definizione di django che ho trovato è quella fornita da Marco Beri nel suo ottimo libro “Sviluppare applicazioni web con django”: “Django è un ottimo tavolo da lavoro, con tanto di strumenti, per costruire siti dinamici e applicazioni web“. E io aggiungo: le “gambe” del tavolo sono costituite da Python!

Utilizzando Debian troviamo django già pacchettizzato. Purtroppo la versione disponibile non è la piu’ recente; ma basta scaricare i sorgenti dal sito http://www.djangoproject.com/download/ e seguire i 3 (anzi 4) semplici passi indicati:

– si scarica;

– si decomprime il tar.gz;

– ci si sposta nella directory ottenuta dalla decompressione;

– si “suda” per installare il pacchetto: fatto!

E qui comincia il bello. Andiamo per fasi (step):

– si crea una directory di lavoro (la possiamo creare nella nostra home; poi vedremo come fare per renderla visibile al server web).

$ mkdir django_work

– ci spostiamo nella directory creata:

$ cd django_work

– richiamiamo il modulo per la creazione del “progetto” (con django si crea prima un “progetto” e poi “n” applicazioni. C’è molta documentazione in rete che riguarda la strutturazione del framewok):

$ django-admin startproject energia

Questo comando genera nella directory corrente una sottodirectory che ha il nome del progetto indicato (nel nostro caso “energia”) che contiene alcuni file: __init__.py, manage.py, settings.py, e urls.py

NB: con l’installazione di django è stato installato anche un server web (diciamo “provvisorio”) utilissimo per fare i test durante la creazione e implementazione del progetto. Questo server si avvia mediante il comando:

$ python manage.py runserver

Se tutto è ok compare un messaggio simile a questo:

Validating models…

0 errors found….. ecc

Quit the server with CTRL-C.

– Modificare il file settings.py e indicare i parametri alla voce “DATABASES“:

‘ENGINE’:  ‘postgresql_psycopg2″ (se si usa database Posgresql)

‘NAME’:  ‘energia’ (il db si puo’ creare dopo; l’importante è dare questo nome :-))

‘USER’:  ‘sit’ (il proprietario del db creato)

‘HOST’: ‘localhost’

‘PORT’: ” (lasciare in bianco per assumere la porta configurata di default)

– Creare il nuovo database (con lo stesso nome indicato del file “settings.py“). PS: in questo post si assume di lavorare con DB Postgresql; per altre configurazioni (sqlite, mysql,…) vedere la ricca documentazione che si puo’ trovare in rete.

$ su

# su postgres

# psql

# CREATE DATABASE energia OWNER sit;

– lanciare il webserver (quello ausiliario fornito da django con il solo scopo di testare lo sviluppo dell’applicazione) posizionandosi all’interno della directory di lavoro.

$ ./manage.py runserver oppure

$ python manage.py runserver

Deve comparire un messaggio di “0 errors“.

– Puntare il browser alla pagina http://localhost:8000/

dovremmo ottenere una pagina con scritto “IT WORKED…..”

– Creare l’applicazione che chiameremo “manager“:

$ ./manager.py startapp manager

In questo modo viene creata la directory “manager”.

– Definire le tabelle del DB mediante il file “models.py“: le tabelle sono definite come classi python (vedi il tutorial on line)

– L’applicazione nuova chiamata “manager” deve essere attivata modificando il file “…../django_work/energia/settings.py” ed inserendo la voce ‘energia.manager’ nella sezione “INSTALLED_APPS

– Per applicare il modello appena definito cioé costruire la struttura del database lanciare il comando:

$ ./manage.py syncdb

Compare una sequenza di messaggi che indicano l’avvenuta creazione di alcune tabelle (comprese quelle di autenticazione) in quanto previste tra le “INSTALLED_APPS” del file “settings.py” (‘django.contrib.auth‘). Installando l’auth system viene chiesto se si vuole creare un superuser. Rispondere “yes“: viene proposto l’utente attivo. Dare” yes” e immettere un indirizzo e-mail e una password (l’email non è indispensabile).

– A questo punto si puo’ procedere al popolamento della/e tabella/e del db. Il tutorial propone di usare la shell di django ma si puo’ fare benissimo con vari client (io ho usato phppgadmin per Postgresql).

– Creazione delle “view“: si tratta delle viste ossia come devono essere presentati i dati. Prima di farlo definiamo gli URl delle varie pagine editando il file “…/django_work/energia/urls.py“.

Questi pattern associano le espressioni regolari ad un modulo python.

Le view vengono definite nel file “…/django_work/energia/manager/views.py” (sono tipiche dell'”applicazione”). Nelle view definite si fa riferimento a determinati template (file HTML).

– Definire la variabile ‘TEMPLATES_DIRS‘ all’interno del file “settings.py

Esempio: ABSOLUTE_PATH + ‘/home/sit/django_work/energia/manager/templates’

– Creare una directory “templates” all’interno di “manager” e procedere alla creazione dei template (base.html, index.html,…). Per una descrizione più dettagliata sui template si rimanda al tutorial on-line.

Supposto che tutto sia ok si puo’ passare alla pubblicazione vera e propria del nostro lavoro. Ricordiamoci che fino ad ora abbiamo lavorato “in casa” usando il server web ausiliario gentilmente offerto da django. Ma se dobbiamo “uscire” nel mondo dobbiamo usare un “vero” server web. Qui facciamo riferimento ad Apache.

– Nel file “settings.py” nella sezione “DATABASES” verificare che la voce ‘HOST‘ sia impostata a ‘localhost’.

– Modificare il file di configurazione di Apache che si trova in (debian :-)) “/etc/apache2/apache2.conf” aggiungendo:

<Location “/energia/”>

SetHandler python-program

PythonHandler django.core.handlers.modpython

SetEnv DJANGO_SETTINGS_MODULE energia.settings

PythonPath “[‘/home/sit/django_wotk/’,’/home/sit/django_work/energia/’] + sys.path”

PythonOption django.root /energia

PythonDebug On

</Location>

<Location “/media”>

SetHandler None

</Location>

Alias /media /home/sit/src/Django-1.2.1/django/contrib/main/admin/media

Quest’ultimo alias è necessario per caricare i file CSS, JS (modificare i template HTML inserendo “/energia/” a monte di ogni HREF).

NB: ricordarsi di riavviare il server web dopo ogni modifica:

# /etc/init.d/apache2 restart

Spero sia tutto corretto. Commenti benvenuti.

il primo “Hello world” in C

Non sono un programmatore; non conosco nessun linguaggio di programmazione. Per questo, approfittando di una piccola necessita’ lavorativa, mi sono avvicinato al C.

Bazzicando in rete ho trovato alcuni “punti di partenza” molto ben fatti:

introduzione alla programmazione in C;

piccolo corso di programmazione in C;

E da qui ne e’ uscito un piccolo programmino per convertire le coordinate geografiche (lat/long) da DMS (Gradi Primi Secondi) a DD (Gradi decimali).

L’ho scritto usato l’editor “nano” (semplice quanto efficace editor che offre colorazione del testo ben fatta).

Una volta scritto il testo sottostante salvarlo con il nome di “primo_test.c” (i codici sorgente in C vengono contraddistinti dal suffisso .c).

#include <stdio.h>
float a,b,c,d;
main()
{
printf(“inserisci i gradi:  \n”);
scanf(“%f”, &a);
printf(“inserisci i primi: \n”);
scanf(“%f”, &b);
printf(“inserisci i secondi: \n”);
scanf(“%f”, &c);
d=a+(((c/60)+b)/60);
printf(“l’angolo in formato decimale e’ %f \n”, d);
}

Una volta salvato il codice deve essere compilato. Per fare questo ho usato il compilatore “gcc” mediante la seguente sintassi:

$ gcc primo_test.c -o primo_test.out

Viene creato un file eseguibile chiamato primo_test.out (nel caso non avessimo indicato il nome del file di outptu, gcc avrebbe nominato il file “a.out”).

Il programma si lancia con il comando

$ ./primo_test.out

Vediamo il codice. All’inizio del testo viene indicata la libreria da caricare per eseguire le operazioni (#include <stdio.h>).

Poi si passa al processo. Stampa a console la richiesta di inserire i valore dei gradi dell’angolo da convertire; fatto questo cattura il valore inserito e lo memorizza nella prima variabile dichiarata (di tipo float). Poi chiede di inserire il valore del primi e memorizza il valore nella seconda variabile. Infine richiede i secondi e li memorizza nella terza variabile.

Fatto questo esegue l’operazione di conversione e propone in output il valore dell’angolo calcolato.

Screenshot con Nokia N810

Screenshot maemo mapper - 1

Avevo bisogno di recuperare alcuni screeshot del Nokia N810. Non esiste un programma pre-installato che consenta di farlo. Dopo avere cercato in rete ho trovato un how-to interessate che spiega vari metodi. Ne ho provato uno (anche perche’ per l’N810 non sono installabili alcuni pacchetti); ecco di cosa si tratta.

Installare prima il pacchetto “osso-screenshot-tool“. E’ un programmino da riga di comando che funzioona con la seguente sintassi.

$ osso-screenshot-tool nome_file.png

Questo crea una immagine della videata al momento del lancio del programma. Ma questo significa che crea una “fotografia” della shell :-). Ci vorrebbe una opzione di “delay” (ritardo) che viene contemplata in un altro pacchetto chiamato “screenshot-tool” disponibile per maemo 5 (sul mio N810 e’ installato maemo 4).

Per ovviare a questo inconveniente ho installato (/in base alle indicazioni riportate nell’howto indicato sopra) il pacchetto “maemo-screen-grabber“. Una volta fatto troviamo una nuova voce in “Extra” chiamata “Maemo screengrabber”. Cliccando su di essa viene eseguito uno screenshot ritardato di 5 secondi; sono piu’ che sufficienti (il tempo di attesa puo’ essere modificato: devo ancora indagare sul come) per andare ad attivare la videata di interesse (magari preparata in precedenza).

Per avviare screenshot grabber: Extra -> Maemo Screengrabber

Otteniamo cosi’ un’ immagine (PNG) che viene salvata automaticamente all’interno della directory “Immagini”. Il nome e’ il TIMESTAMP dello screenshot. 🙂

Un altro esempio con maemo mapper attivo:

Screenshot maemo mapper - 2

OCR con strumenti open source

Esistono strumenti open source per effettuare una ricognizione OCR di documenti. Ho provato il programma “tesseract“. E’ un programmino da riga di comando. Si installa via apt-get o synaptic. E’ necessario installare anche sane, sane-utils, imagemagick, unpaper, tesseract-ocr, e tesseract-ocr-eng oltre a tesseract-ocr-ita (per la lingua italiana).

Una volta installato effettuare la scansione della/e pagina/e volute (impostare una risoluzione di almeno 300 dpi per avere una buona qualità) quindi lanciare il programma, per es:

$ tesseract nome_file.tif nome_file_output -l ita

In questo modo viene processato il file nome_file.tif e viene prodotto in output nome_file_output.txt (l’estesnione .txt viene aggiunta dal software); il processamento avviene in lingua italiana. Possibilmente usare immagini in formato TIF.

Ottima questa guida in proposito.

Settimana del software libero a Vicenza

Dal 14 al 19 settembre si terra’ a Vicenza (Parco Citta’) la “settimana del software libero” organizzata dal LUG Vicenza (un grazie particolare a Luca!). Grazie alla disponibilita’ dei proprietari di “Parco Citta’”, che hanno messo a disposizone degli spazi, sara’ possibile toccare piu’ da vicino il pinguino.
Gli appuntamenti sono densi e ricchi. A questa pagina si trovano i dettagli di tutti gli eventi.
Mi permetto di segnalare gli incontri previsti per mercoledi’ 16 settembre. Si parlera’ di OSM. OpenStreetMap e’ un progetto mondiale che mira a creare una mappa (si, la mappa geografica e stradale) libera di tutto il mondo. Contribuire e’ semplice e non servono particolari skill o professionalita’……..Per chi e’ curioso di saperne di piu’, appuntamento a Parco Citta’. 🙂

Settimana del software libero a Vicenza - Volantino by Andrea Lazzarotto

Settimana del software libero a Vicenza - Volantino by Andrea Lazzarotto