[Gfoss] splite 3.0.0 / FreeXL

Forse OT, ma forse anche no ...

comunque l'idea originale nasce da Markus Neteler,
quindi suppongo che questo significhi che dopo
tutto non è affatto OT :smiley:

ho appena rilasciato la prima ALPHA di
FreeXL, una libreria C in grado di estrarre
i dati memorizzati all'interno di un foglio
di calcolo Microsoft Excel (qualsiasi versione,
purchè in formato .xls, *non* i nuovi XML-based).

http://www.gaia-gis.it/FreeXL/

e qua ci trovate la documentazione (abbastanza
esaustiva e completa):
http://www.gaia-gis.it/FreeXL/FreeXL.pdf

-------------

l'idea di fondo è quella di usare FreeXL come
motore per implementare un driver Virtual Table
per SpatiaLite.

già oggi VirtualShape consente di accedere direttamente
da SQL ad uno Shapefile esterno, VirtualText consente
di accedere a files TXT-TAB e CSV et.

E così domani VirtualXL consentirà di accedere
esattamente allo stesso modo a un foglio di calcolo
.xls esterno.

-------------

ma natualmente una libreria di questo tipo è
sicuramente interessante anche per moltissimi
usi diversi che non hanno nulla a che fare con
il GIS (un'ulteriore conferma che il SW in fondo
è semplicemente SW senza tanti confini e barriere
spesso artificiose, e che Spatial Is Not Special).

e proprio per questo FreeXL non finirà "sepolta"
dentro alla base di codice di SpatiaLite, ma
verrà distribuita come libreria a se stante,
in modo tale da favorirne il riuso quanto più
semplice e diretto possibile.

FreeXL è incredibilmente leggera e compatta:
giusto un migliaio di righe in C, circa 40 KB
di codice binario :smiley:

dalle prime prove preliminari pare in grado di
leggere correttamente qualsiasi .xls di qualsiasi
versione a partire dalla remota 2.0 del 1987.
testato su Linux, Windows e MacOsX: testato sia
su architetture little-endian (x86) che su
architetture big-endian (ppc).
e secondo Valgrind non ha neppure il minimo
memory leak.

ma naturalmente le vie dell'inferno sono infinite:
quindi se qualche volenteroso tester volesse dare
una mano, farà sicuramente cosa altamente utile
che consentirà di arrivare velocemente ad una messa
a punto definitiva di FreeXL (e di VirtualXL a seguire).

Enjoy :smiley:
Sandro

FICHISSIMO!
Lo provero' prossimamente.
Certo, ci fossero i binding per python sarei più felice :wink:
Ma il tool xl2sql e' già più che sufficiente per farsi le idee chiare.

Una considerazione: spesso i "maniaci di excel" usano i colori per dare significato ad una cella.
Spesso questa informazione viene riportata in un testo a se in una cella.
Immagino sia un casino da recuperare, ma gia' avere una ulteriore colonna in cui viene riportato l'indice del colore contenuto nella cella (qualora le celle siano di colore diverse) forse potrebbe tornare utile a ricostruire il dataset.

On Sat, 30 Jul 2011 11:35:58 +0200, Maurizio Napolitano wrote

Certo, ci fossero i binding per python sarei più felice :wink:

immagino che buttare giù un Python-binding sarebbe veramente
una passeggiatina: in fondo si tratta di wrappare meno di
10 funzioni C
se ci sono volontari che sanno da che parte mettere le mani,
sarò ben felice di collaborare con saggi consigli.

Una considerazione: spesso i "maniaci di excel" usano i colori per
dare significato ad una cella.

esempio perfetto di come a volte la fantasia perversa
degli utenti generi MOSTRI :stuck_out_tongue:

Immagino sia un casino da recuperare

per nulla: se ti leggi la doc, vedrai che un record XF
(eXtended Format) contiene le info "di formato" relative
a ciascuna cella: tra cui ovviamente il colore.
ma qua si apre l'oceano: c'è un colore per il bordo, un
colore di foreground, un colore di background, un pattern
(retini punteggiati etc), effetti di ombreggiatura etc.
poi naturalmente occorre considerare il font e relativi
"effetti speciali" (underline, bold, italic ...).

non vorrei che alla fine si scopre che qualche pazzo
scatenato sovraccarica di significati particolari le
celle con sfondo verde, intendendo come ulteriori sotto
classi quelle col bordo rosso e quelle col bordo blu etc:
e magari differenziando ulteriormente quelle in Arial
Bold 10pts nero da quelle in Verdana Italic 12pts rosso.
le vie della perversione mentale temo siano praticamente
infinite :smiley:

ciao Sandro

2011/7/30 <a.furieri@lqt.it>:
...

ho appena rilasciato la prima ALPHA di
FreeXL, una libreria C in grado di estrarre
i dati memorizzati all'interno di un foglio
di calcolo Microsoft Excel (qualsiasi versione,
purchè in formato .xls, *non* i nuovi XML-based).

http://www.gaia-gis.it/FreeXL/

Grande, Sandro... ho anche molto apprezzato la
pagina 2 del "read me first" documento sul sito :wink:

complimenti,
markus

Il 30 luglio 2011 11:19, <a.furieri@lqt.it> ha scritto:

Forse OT, ma forse anche no ...

comunque l'idea originale nasce da Markus Neteler,
quindi suppongo che questo significhi che dopo
tutto non è affatto OT :smiley:

ho appena rilasciato la prima ALPHA di
FreeXL, una libreria C in grado di estrarre
i dati memorizzati all'interno di un foglio
di calcolo Microsoft Excel (qualsiasi versione,
purchè in formato .xls, *non* i nuovi XML-based).

Grazie Sandro..i poteri dello spritz :slight_smile:
Un servizio WPS ci sta proprio bene..ti aggiorno appena ho finito.

Ciao
L.

--
Luca Casagrande
twitter: lucacasagrande

On Sat, Jul 30, 2011 at 06:15:01PM +0200, Markus Neteler wrote:

2011/7/30 <a.furieri@lqt.it>:
...
> ho appena rilasciato la prima ALPHA di
> FreeXL, una libreria C in grado di estrarre
> i dati memorizzati all'interno di un foglio
> di calcolo Microsoft Excel (qualsiasi versione,
> purchè in formato .xls, *non* i nuovi XML-based).
>
> http://www.gaia-gis.it/FreeXL/

Grande, Sandro... ho anche molto apprezzato la
pagina 2 del "read me first" documento sul sito :wink:

Molto interessante il readme, in effetti.

Pero' una nota, Alessandro:

Dici che XLS e' pubblico, ma dal sito che linki leggo:

Patents.
  Microsoft has patents that may cover your implementations of the
  technologies described in the Open Specifications. Neither this notice
  nor Microsoft's delivery of the documentation grants any licenses under
  those or any other Microsoft patents.

In pratica M$ pubblica le specifiche, ma avverte che ci sono dei brevetti
pendenti, e quindi potrebbe venirti a bussare a casa e farti passare un
brutto guaio per aver sviluppato FreeXL.

Per carita', sono contentissimo che tu l'abbia fatto, pero' mi ha sorpreso
leggere nel readme (ma perche' in PDF?):

Surprise: not only the .xls binary file format is extensively documented,
but this documentation is publicly disclosed.

Come a dire che la cattiva reputazione di XLS fosse soltanto un ingiusto mito.

Tra parentesi, quella specifica ha come prima release nel 2008, ovvero 6 anni
dopo la prima release di OpenOffice. Probabilmente si sapeva gia' tutto grazie
ad anni di duro reverse-engeneering, e OOO prendeva gia' cosi' tanto terreno
da far tremare il colosso tanto da provare il colpo di coda. Su, continuate
ad usare XLS, tanto ci sono i driver liberi... gli sviluppatori li carceriamo
poi...

http://www.gnu.org/philosophy/fighting-software-patents.it.html

Ad ogni modo, davvero complimenti, un lavoro di ricerca e divulgazione
di grande spessore, e anche molto divertente (peccato il pdf) :slight_smile:

--strk;

  () Free GIS & Flash consultant/developer
  /\ http://strk.keybit.net/services.html

On Sat, 30 Jul 2011 18:32:39 +0200, Sandro Santilli wrote

Pero' una nota, Alessandro:

Dici che XLS e' pubblico, ma dal sito che linki leggo:

Patents.
  Microsoft has patents that may cover your implementations of the
  technologies described in the Open Specifications. Neither this notice
  nor Microsoft's delivery of the documentation grants any licenses under
  those or any other Microsoft patents.

In pratica M$ pubblica le specifiche, ma avverte che ci sono dei brevetti
pendenti, e quindi potrebbe venirti a bussare a casa e farti passare
un brutto guaio per aver sviluppato FreeXL.

vedi:
http://www.gatchev.info/blog/?p=601
http://www.gatchev.info/blog/?p=602

Esiste un documento formale che si chiama Microsoft’s
Open Premise; in soldoni mamma Microsoft dice:
si è vero, sono formati brevettati, ma io sono così generosa
che vi metto a disposizione le specifiche ufficiali, e mi
impegno pure solennemente ed unilateralmente a non intentare
mai una causa legale contro nessuno sviluppatore FLOSS che
le usi per realizzare sw senza fini di lucro.

Tra parentesi, quella specifica ha come prima release nel 2008,
ovvero 6 anni dopo la prima release di OpenOffice.

e ben 21 anni dopo il rilascio del primo Excel (1987), se
proprio vogliamo andare a cercare il pelo nell'uovo :smiley:

Probabilmente si sapeva gia' tutto grazie ad anni di duro
reverse-engeneering, e OOO prendeva gia' cosi' tanto terreno
da far tremare il colosso tanto da provare il colpo di coda.

sicuramente è una coincidenza del tutto casuale: ma come
sicuramente ricorderai, nel frattempo era pure intervenuta
l'Antitrust UE (2007) che aveva erogato una durissima sanzione
per abuso di posizione dominante e pratiche distorsive della
libera concorrenza di mercato :slight_smile:
http://en.wikipedia.org/wiki/European_Union_Microsoft_competition_case

divulgazione di grande spessore, e anche molto divertente (peccato
il pdf) :slight_smile:

semplice pigrizia; se preferisci posso spedirti l'ODT originale
di OOO da cui ho ricavato il PDF (detto con altre parole: ancora
stanotte alle 2 ero dietro a smoccolare come un carrettiere turco
sul MacMini PowerPC che andava in crash a gogo per uno stupido
problema di endianness che mi era sfuggito a prima vista) :smiley:

ciao Sandro

On Sat, Jul 30, 2011 at 07:22:10PM +0200, a.furieri@lqt.it wrote:

Esiste un documento formale che si chiama Microsoft’s
Open Premise; in soldoni mamma Microsoft dice:
si è vero, sono formati brevettati, ma io sono così generosa
che vi metto a disposizione le specifiche ufficiali, e mi
impegno pure solennemente ed unilateralmente a non intentare
mai una causa legale contro nessuno sviluppatore FLOSS che
le usi per realizzare sw senza fini di lucro.

La fonte, oltre al blog ?
La cosa piu' vicina che ho trovato e' qui:

http://www.microsoft.com/openspecifications/en/us/programs/osp/default.aspx
http://www.microsoft.com/openspecifications/en/us/programs/community-promise/default.aspx

Estende la "promessa" anche all'uso commerciale, ma non trovo conferma
che valga anche per il formato XLS.

Potresti chiedere, come suggerito dalla pagina di documentazione del formato [1],
inviando una mail a iplg@microsoft.com. Dice di scrivere se si preferisce una
licenza scritta (anziche' la caduca promessa sul sito).

[1] http://msdn.microsoft.com/en-us/library/cc313154(v=office.12).aspx

--strk;

  () Free GIS & Flash consultant/developer
  /\ http://strk.keybit.net/services.html