News,Development Resources,Featured Content

receive news by mail:

Loading SpatialBundles Download list...

free SOM

E' quasi arrivato il momento di aprire una bella petizione online per chiedere l'apertura con licenza open source del SOM di OS/2 di IBM.
Ci ritroveremo cosi a programmare un'applicazione per SOM e visualizzarla nativamente in KDE o GNOME...

SOM (System Object Model) is a library packaging technology that enableslanguages to share class libraries regardless of the language they werewritten in. This ability to share class libraries between various objectoriented languages solves many interoperability and re-use problems betweenobject oriented and non object oriented languages as well.

Key characteristics of SOM in support of these key commercial requirementsinclude:

- the ability to create portable shrink wrapped binaries

- the ability to create class libraries in one language that can beaccessed and used by other languages

- the ability to subclass from binaries even if they were written ina different language

- the ability to add new methods and relocate existing methods withoutre-compilation of the application

- the ability to insert new classes into the inheritance hierarchy withoutrecompiling the application.

SOM provides an object model distinct from those contained in objectoriented programming languages yet does not interfere with the use of thosemodels in the same application that is using SOM. In addition, SOM canbe used with procedural programming languages thus providing an objectmodel for those languages that do not have one.

SOM consists of an Interface Definition Language (with an accompanyingcompiler), a run-time environment with procedure calls, and a set of enablingframeworks.

SOM is an IBM technology that is being licensed to other companies inanticipation of extending its benefits to heterogeneous environments. Inaddition, a number of language vendors are working on providing nativeSOM capability for their compilers.

Un approfondimento su ninux.org per una rete libera

Ogni giorno mi confronto con i colleghi ed amici che non sanno nulla di reti libere, di possibilita tecnologiche per liberarsi, e di concetti stessi di liberta (è assurdo ma è la realtà misurata di ogni giorno).
Cio che noi diamo per scontato non lo è affatto per queste normalissime persone (normali dal punto di vista della conoscenza delle tecnologie sociali moderne che rendono sempre piu possibili la vera democratizzazione dei popoli).
Io li osservo come fossero anestetizzati.
Dobbiamo prendere in considerazione la lingua che parlano queste persone e con questa aprire un canale di connessione. per poter cominciare a comunicare con loro.
A me verrebbe di pensare alla costruzione di un manifesto da pubblicare, un manifesto cosi come lo è la licenza GPL o the Jargon File a titolo di esempio.
Una sorta di contratto che guarda solo l'aspetto umanitario ed implementativo della questione.Un aspetto che si eleva e si distanzia da qualsiasi posizione religiosa, politica, o di appartenenza se non alla pura liberta.
Niente politica nel senso volgare cosi inteso mediamente in questo paese.
Niente terminologie di massa e speculazione verbale.
Dovremmo presentarci come un sistema associativo (vedi ad esempio ONLUS) che vuole mirare esclusivamente ad un'implementazione tecnico/sociale per fornire una struttura di riferimento sulla quale, liberamente, la popolazione puo aggiungersi per "prendere e dare".
Con l'essere quindi "di utilità sociale", sfruttare la legge a proprio favore, dimostrando ancora che con la democrazia si costruisce la democrazia.
Dovremmo prendere esempio dalle realtà sociali virali che sono nate grazie alla rete.
FON è un esempio notevole, ma anche i modelli di sviluppo e pervasività si Seattle Wireless per non parlare delle metodologie delle reti peer2peer e chissa quanto altro...
E perche no un giorno FreeNet su mesh Ninux con routing Netsukuku ;)

SpatialBundles piccola presentazione presso pollycoke.net

In seguito al presente articolo su http://pollycoke.net
lavorando su un progetto analogo mi sono sentito di intervenire con un post per esplicitare meglio il mio lavoro:

Buongiorno a tutti,

vorrei portare alla vostra attenzione un progetto tutto italiano che sto sviluppando con certosina pazienza che cerca di risolvere una buona parte dei problemi introdotti da tutti i sistemi in Bundle oggi esistenti.

Alcuni riferimenti diretti qui:

http://developer.infodomestic.com
https://sourceforge.net/project/showfiles.php?group_id=199098

Di seguito lo skeleton che sto usando per la costruizione del Bundle:

http://it.wikipedia.org/wiki/SpatialBundles

in particolare uno scambio di punti di vista con Alexander Larsson

http://lists.freedesktop.org/archives/xdg/2007-September/008812.html

In poche parole uno SpatialBundle è un Bundle semicompleto che vive in un file e necessita quasi esclusivamente per funzionare della shell POSIX (ora bash ma poi dash compatibile) e di xmessage per alcune interazioni.
Ad oggi lo sviluppo avviene tramite Ubuntu quindi sfrutto anche una componente di zenity e della system tray per migliorare l'esperienza di ritorno con l'utente, ma ho intenzione di rendermi indipendente anche da loro.

Alcune differenze dagli altri sistemi ormai noti come glik klik AppDir & co sono:

Vive in un file ed in quanto tale è manipolabile come un file.
Non necessita di istallazione 1 programma = 1 file = 1 click per eseguirlo (a meno del doppio clik)
Non necessita di infrastrutture esotiche tipo FUSE
Non necessita di accesso root
Non necessita di preinstallazione di programmi proxy tipo klik
Si comporta come un eseguibile al pari di glick ma con qualche riserva in quanto è un file shell con il payload incorporato (usa il codice di makeself/loki)
Lavora in ambiente di memoria protetto e non permette il code injection in quanto ogni esecuzione del bundle ha un controllo checksum e crc di consistenza.
Non usa file immegine cramfs o altro.
Non sporca il file fstab
La sua architettura interna è 100% ROX Application Directory (ho inserito anche il proxy standard AppDir) compatibile e presenta una compatibilità in via di miglioramento con le Application Bundle di OSX/NEXTSTEP.
In particolare se con il ROX filer si visita la cartella Programs che contiene la cache dello SpatialBundle è possibile vedere direttamente un'icona in stile ROX ed avviare dalla cache l'applicazione (operazione non necessaria).

L'esecuzione del Bundle produce un menu contestuale presente nella tray per il controllo primordiale del Bundle stesso compresa la rimozione della cache (che viene comunque rimossa ad ogni riavvio del computer).
E' progettato per venire incontro alle esigenze della "Nonna".
Soffre di alcune latenze al primo avvio che sono funzione dell'espansione del file nella cache.
Sto progettando un metodo statistico che cone le dovute premesse conservative migra la cache da disco a ram pura per velocizzare l'avvio di applicazioni pesanti (ad esempio OpenOffice).

Vorrebbe essere multipiattaforma attaversando GNU/Linux - BSD - OSX - Windows (ovvero li dove è possibile installare una shell standard POSIX o al limite bash).

del WiMax una nota polemica...ogni tanto ci scappa

Oggi sulla lista di ninux.org dove sono iscritto per seguire gli sviluppi della rete libera ho postato il seguente messaggio:

Ho la depressione in corpo.
Tanto per cominciare WiMax almeno qui in Italia = pagare per la liberta di parola

Ovvero uno strumento super promosso dallo stato per la trasmissione della liberta di parola è in mano all'economia ovvero i monopoli accentratori che hanno come prima regola il profitto.

Poi vogliamo parlare di come lo stato che sia di destra o di sinistra mai e poi mai abbia in modo risolutivo promosso il WiFi verso unicamente la sua popolazione.Ovvero liberalizzando senza mezzi termini l'utilizzo delle frequenze per a/b/g/n.
Invece oggi ci ritroviamo a cercare di aggirare la legge per essere legali quando dovevamo concentrarci, grazie alla relativa legge, a costruire esclusivamente la struttura per la liberta.
Ma dove siamo a Cuba!!!In Corea del Nord??

Ci hanno regolamentato tutto pur di avere il controllo dell'informazione.Anche le onde acustiche!! Mica possiamo gridare...è vietato!! (gridare quando non si manca di rispetto il prossimo si intende ;).

Tutta questa storia che come l'aria dovrebbe essere scontata, mi sfinisce, anche se non mi abbatte affatto.
Ma certo che l'Italia almeno sotto questo punto di vista fa proprio cagare!!! ma di brutto!!
Non è piu una questione di chi voti...tanto come la metti loro hanno delle politiche piu generali che vanno bene a destra e a sinistra...ovvero opprimere la circolazione delle informazioni perchè in questo modo si decentralizza il potere...ovvero lo si passa dallo stato centralizzatore alla sua popolazione, con, reciprocamente, vantaggi e svantaggi.

Facessero quello che vogliono con il WiMax per me ci si possono strozzare..io vorrei che il WiFi fosse veramente all 100% libero ovvero, niente tasse, niente vincoli etc etc (per non parlare della storia dei ponti laser!!! incredibile).

Ma cosa dobbiamo fare?? referendum? ma a chi bisogna tartassare ogni giorno fino alla fine dei tempi per avere sto WiFi libero??
Scusate lo sfogo...ma sono depresso!!

Ciao,

Luca

SpatialBundle 0.8.9 con ioAmuleAdunanza come road test

Nel frattempo sono arrivato alla versione 0.8.9 degli Spatial Bundles con i quali ho costruito:

ioAmuleAdunanza3.11b

Ovvero ricompilato aMule Adunanza 3.11b ed impacchettato in un Bundle per i cari nostrani che usano FastWeb.
Scaricate e cliccate sopra e quello parte :)
Non richiede installazione o password di amministrazione.
Piu Click n Run di cosi si muore...non c'è nulla di equivalente oggi in ambito Linux che possa minimamente confrontarsi con questa soluzione..provare per credere oramai è qualche anno che li testo e sviluppo spero che il 2008 sia l'anno del rilascio della 1.0 vedremo.

Per farvi capire, normalmente aMule richiede una dipendenza stretta con un framework di nome wxWidgets che viene fornito dai repository di Ubuntu basta installarli :) facile a dirsi per chi non capisce nulla di informatica ma vuole semplicemente usare aMule per scaricarsi illegalmente il TOMTOM ;).
ioAmuleAdunanza contiene gia le principali dipendenze inglobandole con se e sollevando l'utilizzatore dell'impegno di risolvere tramite strumenti esterni il problema....

In questo caso l'utilizzatore scarica il file che per sicurezza non è eseguibile, poi aggiunge l'attributo di eseguibilita dalle proprietà del file e quindi ci clicca sopra ed attende.

Niente installazioni il programma parte direttamente

[The Road To...] Domenica 14 Ottobre 2007

Mattina:
Riduco al minimo l'utilizzo di zenity in favore di xmessage prima di finire di mettere completamente a punto ioDialog che rappresenta l'oggetto di dialogo di Infodomestic Objects (wrapper a tutte le forme di widget dialogs disponibili sulle distribuzioni).
Test su Ubuntu Dapper, Ubuntu Feisty, FreeBSD 6, PCBSD, Sun Solaris 10
TODO: pulizia zenity con xmessage
La dicitura:
xmessage -center -buttons Yes,No -default No -print message
scrive il messaggio "message" con i pulsanti [Yes][No] e default evidenziato su [No], cliccando su un pulsante ritorna il nome del pulsante.
10:59
99% delle dipendenze a zenity sono state escluse e sostituite dal più flessibile xmessage.
Rimane la principale dipendenza che permette la manipolazione del system tray elementare.
A differenza di Zenity con xmessage è possibile integrare testo di Help per le scelte da operare.
Nei messagi di conferma dove compare solo il classico testo piu pulsante tipo:
--------------------------------------------------
"Ciao tutte le cose sono state svolte!!"
[OK]
--------------------------------------------------
Ho inserito un delay di 5 secondi per auto chiudersi.
Dipendenze da risolvere:
System tray entry per il primo menu e File selector per la scelta di destinazione del Send to...
Questi due componenti possono essere completamente riprogrammati con FLTK o simili.

11:24
Trunk SpatialFactory 0.8.8
0.8.8 usa xmessage per comunicare.
Si aspetta due file proxy di nome: ioNomeProgramma e ioWrapper in Contents/Resources/bin per la gestione dei binari reali

12:47
Attualmente nella modalità --silent si perde completamente il controllo della gestione del'oggetto, ovvero non si possono modificare gli attributi ne inviare messaggi per richiamare evetuali metodi (come per esempio il metodo Remove).
E' necessario introdurre un punto di ingresso sicuro tramite il file system come per esempio $HOME/Objects all'interno del quale replicare la vista di ioDock e permettere di accedere ai metodi esposti nel tray:
About
Open
Send
Controls
Remove

Quindi ioDock può far riferimento diretto a $HOME/Objects

Ad ogni esecuzione diretta copia l'oggetto ioMenu in $HOME/Objects ed esegue $HOME/Objects/ioProgrammaMenu --Open
Ad ogni Remove rimuove anche il relativo $HOME/Objects/ioProgrammaMenu
Se si esegue Open e ioProgramma non è disponibile allora autorimuove $HOME/Objects/ioProgrammaMenu e rilascia un messaggio di avvertimento.
Ciò preserva da evenutali condizioni di inconsistenza dove è presente il Menu ma non il programma.
ioProgrammaMenu è uno SpatialBundle

14:58
Primo wrapper 100% convertito in Object Rexx.
Nel frattempo la legna nel camino viene divorata dalle fiamme tramite una funzione gradino del tipo: Ciocco umido->Brace ... non c'è gusto
Devo cambiare notebook a passare a qualcosa con monitor max 15pollici, case alluminio, doppio processore 64bit super efficiente, batteria eterna, wifi e bluetooth, super scheda grafica 3D OpenGL con tanta RAM non condivisa.Ma i Powerbook ultima serie ci si avvicinano?Vedremo.

20:45
Mollo tutto e mi faccio una minidose di tenente Colombo e poi Heroes a tutto spiano.Rexx puo aspettare.
Dopo vomito pe la giornata in modalita macinacodice...ora mi godo il trip televisivo.

[The Road To...] Sabato 15 Settembre 2007

I post The Road To vengono prodotti con tomboy in modalita macinacodice.
Questi poi vengono tenuti in stagionatura in .tomboy fino a quando non mi rendo conto che mi sto ricordando di doverli postare!!!

---

18:00
E' dalle 9:30 di questa mattina che sono testa chinata sulla tastiera ad emettere flussi di bit.
Ho preparato un ambiente di runtime per REXX tramite Regina.
Ora si clicca sul Bundle ioReginaREXX e si avvia un terminale dedicato all'interno del quale è disponibile l'ambiente interpretato di Regina e quindi possibile passargli uno script .rexx da eseguire.
L'ambiente ha con se tutte le variabili di ambiente settate e disponibili, nonchè una shell ristretta.

Penso che gli sviluppatori di applicazioni desktop che richiedono un'interfaccia grafica, oggi dovrebbero preoccuparsi di offrire con la stessa applicazione delle interfacce separate e dedicate per classi di dispositivi.
Ad esempio:
Personal computer con monitor da almeno 8/10 pollici
Dispositivi mobili con monitor 4/8 pollici
Dispositiv mobili con monitor max 4 pollici.

Insomma la stessa applicazione ricompilata per un Nokia N73, per un Palm Tungsten, Per un Nokia N800, per un table da 10 pollici, per un iBook 12 fino a un desktop da 20 pollici, etc etc... dovrebbero avere delle interfacce grafiche disegnate esplicitamente per quel tipo di visualizzazioni.
E' lo stesso problema che i designers web incontrano ed affrontano già da tempo.
Quindi mi auguro che in futuro essi sviluppano più di una interfaccia dedicata.
Oggi è possibile pensare seriamente all'utilizzo di interfacce AJAX locali, chiaramente supportate da motori di rendering superveloci che tengono il passo con i widget classici.

20:49
Compilato e "Bundlizzato" ioLibnotify che verrà usato come componente di notifica dagli SpatialBundles.
Sarà onnipresente in ogni Bundle come carico pagante da 405Kilos
Il Dock tray implementato già da almeno una settimana funziona a meraviglia.La sua garanzia di funzionamenteo è strettamente vincolata all'utilizzo di Ubuntu Feisty.Questo concetto necessità di seria revisione ponendo in primo piano elementi quali: indipendenza dal gnome -panel e dal system tray applet di gnome.
In poche parole potrebbe essere necessario prendere in considerazione un pannello gtk/gnome agnostico che puo girare ovunque e che abbia un system tray bay standard che accetti icone svg/png da 128px.

Devo costruire un sistema di notifica basato su named pipe e non su librerie da compilare.
Il sistema, li dove presente, esegue il faultback a libnotify altrimenti esegue la sua notifica nativa da implementare con widget leggeri e super specializzati.

Il prossimo sistema di notifica sarà basato su OSD per operare un rinforzo informativo sulle attività dei Bundles.

Le notifiche devono poter operare ed essere esplicitate anche in una console.

Infodomestic Objects non vuole reinventare un mondo su tutte le piattaforme come sta riuscendo egregiamente Gnome tramite le sue librerie specializzate, ma vuole dare una forma al mondo che già esiste utilizzando scalpello e collante.

Mi è stato chiesto da un ragazzo americano di creare il Bundle di Pidgin.
La mia attuale toplist comprende:

GIMP
Calcolatrice
Terminale
Text Editor
Browser Web
Calendario
Thunderbird
Rubrica condivisa
Pidgin
Gnumeric
Abiword
Rhythmbox

E' assolutamente fondamentale avere canvas con un widget crossplatform leggero che possa integrare una libreria di parsing e rendering Web2.0 (XHTML CSS2 ECMAScript/Actionscript).
Con questo canvas ultraspecializzato che può essere eseguito in qualsiasi environment X sarà possibile integrare le applet Dashboard di Apple, Google e Yahoo ed eseguire direttamente materiale Flash (per quelle Apple è necessario un ulteriore layer di adattamento che traduce le chiamate a OSX).
Questa peculiarita è un KillerApp per il Desktop Linux e dovrebbe essere seriamente presa in considerazione.
Qualcosa si muove nella giusta direzione grazie a KHTML ed incredibile a dirsi: Apple stessa.
WebKit è una tecnologia che emerge grazie ai lavori di Apple su KHTML e presto sarà pienamente disponibile anche per GTK.
Epiphany su WebKit è gia in lavorazione e porterà degli ottimi risultati.
Ci si può chiedere sul perchè non supportare Gecko nell'incarnazione XULRunner, la risposta è che ancora non ritengono il caso di sganciarsi definitivamente dai widget XUL based (il quale di per se è un ottimo linguaggio di marcatura per widget tipo GLADE).Ci sono dei timidi binding ma la leggerezza e l'integrazione nativa è ancora utopia per questo progetto megalitico.
Mozilla è ancora un mondo a se stante e cambieranno seriamente registro nel momento che WebKit si sarà pienamente diffuso erodendo quote a Gecko.
Installare Mozilla, oggi, è l'equivalente impegno di installare Java.
E' un ambiente di esecuzione generico con widget specializzati per il rendering web, ma non dista molto dal runtime Java per principi. Infatti possiamo costruire aplicazioni verticali specializzate ed eseguirle con lo XULRunner.
Il principio è ottimo ma l'implementazione è troppo pesante in termini di spazio occupato e latenze di parsing.
Questo è quanto riguarda il classico Firefox, ma qualcosa si sta seriamente muovendo in seno a Mozilla e Minimo è gia una sua risposta concreta.
Lo spinoff di Thunderbird potrebbe essere un primo segno di tentivo di ottimizzazione dei gruppi di lavoro.
Devono dare una risposta concreta altrimenti crolleranno sotto il proprio peso.

23:54

Prima di passare al nuovo giorno...
Con l'utilizzo del notify ho integrato uno screenshot dell'applicazione che si va avviando.
Il feedback è immediato in quanto la rappresentazione non è tradotta con un'icona approssimata, ma diretta con una fotografia del'applicazione stessa.

[The Road To...] Raccolta di appunti sparsi durante l'avanzamento di SpatialBundle

Martedi 14 Agosto 2007

01:30 A.M.
Con le modifiche apportate a Java6 entra prepotentemente in scena il wrapper per la prima diretta esecuzione di AppRun.
Il wrapper in questione si trova in Linux-ix86/bin e nell'ipotesi più semplice richiama direttamente il binario principale.
Nel caso di Java6 in qualità di suite , il wrapper richiama il pannello di controllo e il JavaWS cache manager per fornire un feedback di base all'utilizzatore.

Dopo la prima esecuzione viene copiato AppRun.desktop in $HOME/Desktop/Broken_Link_You_Can_TRASH_It_$PROGRAMMA.desktop
L'effetto di questa copia è quello di avere un'icona colorata nel caso di cache attiva (il .desktop risolve felicemente contro il $prefix) nel caso che la cache sia stata --free allora compare nel desktop il nome del file .desktop che cerca di essere descrittivo della situazione poco felice con le parole: BROKEN_Link_You_Can_TRASH_It_ioJre6u1-feisty.desktop in questo modo l'utilizzatore osservando un file testo ostile ed il suo nome che lo invita ad essere buttato nel cestino, potrebbe eliminarlo direttamente ripulendo il Desktop di una foglia secca (DEPRECATo nel futuro implemento una soluzione più elegante).
Le parole BROKEN e TRASH sono volutamente poste in maiuscolo tale che l'effetto di Information Foraging permetta di intercettare piu velocemente le parole chiavi dell'invito proposto.
Ricordo che ad oggi l'utilizzo di un file .desktop è DEPRECABILE per l'inconsistenza tra l'oggetto reale ed il metadato.L'utilizzatore puo facilmente scambiare l'uno con l'altro.
Il problema verrà meno quando in futuro sarà possibile incorporare le voci .desktop in script eseguibili.

Quando si esegue uno SpatialBundle .jar questo deve poter accettare in ingresso uno SpatialBundle ioJre tale da poterlo aprire e passargli se stesso come argomento da lanciare.
Questa tecnica permette ai livelli superiori di poter effettuare il drop di un Jar su un ioJre e viceversa.
Un Jar che non trova un ioJre deve aprire una finestra di dialogo per fare scegliere all'utilizzatore lo ioJre voluto e consigliare nello stesso momento la capacita di drop dello ioJre sul Jar. Quest'ultimo dopo il drop prende nota della path di sorgente e registra un mime per le future esecuzioni.

03:30 A.M.
Ho aggiunto la capacità di parsing dei programmi Java Web Start potenzialmente passabili dal Web Browser che deve risolvere il mime.
Un file .jnlp viene copiato in cache locale poi eseguito direttamente.

• Lo SpatialBundle si occupa di eliminare il .desktop nel Desktop nel caso di ioProgramma --free

04:35 A.M.
Le modifiche apportate allo SpatialFactory meritano un cambio trunk da 0.7.4 a 0.7.5 cosa che avverrà prima di chiudere la sessione notturna ed avere la nightly build finale verso le 05:00 A.M.
File modificati makeself-header AppRunFooter fAppRun

05:20 A.M.
Brancolo nel buio attivo la modalita debug diretta nel codice per sapere cosa succede.

05:30 A.M.
file ed area di codice di bug ingaggiata

05:45 A.M.
Bug Aperto
Trunk 0.7.5
Sessione Chiusa


Domenica 19 Agosto 2007
Colonna (Casteli Romani) - Rome Italy


01:27 A.M.
Aperta la sessione per risolvere il bug del trunk 0.7.5

01:52 A.M.
Bug risolto ma sarebbe necessario che il CrossBundle riuscisse a distinguere tra una richiesta diretta da terminale ed un passaggio mime.
Il bug è risolto con default sul mime quindi: ..../bin/java -jar $YourPayLoad
La versione da terminale è momentaneamente commentata: ..../bin/java -jar $YouAreHere/$YourPayLoad
viene eseguito il parsing contro .jar e .jnlp per abilitare il mime sui file webstart anche tramite browser.

02:43 A.M.
mentre risolvo alcune questioni sul CrossBundle di Jre6 (clicco sullo SpatialBundle e deve aprire anche un file selector per farmi scegliere un .jar da eseguire) ascolto in cuffia dall'ibook G4 1Ghz 12' le mie ultime 10 traccie di musica elettronica sperimentale create quando ero in montagna i giorni precedenti...
E penso...codifico su questo catorcio di Acer Aspire 3000 (ma con Ubuntu Feisty on board) con un AMD 2800+ ed ascolto musica su un ibook G4 1Ghz e Mac OSX che da le piste a tutti!!! (...quasi tutti ;-)
E penso...che per garantirmi incontaminazioni di -dev varie ho una fresh feisty desktop e non posso ascoltare mp3!!! non posso perche dovrei avere una rete per tirare giù i codec dai repo di ubuntu e se avessi installato la reciproca versione di Freespire ora sarebbe tutto ok gia da CD (ma dovrei imbarcarmi KDE).
E penso...che una potenziale prossima compera potrebbe essere uno spettacolare Powerbook G4 12' di quelli superPower (ma perche non hanno mai fatto un G5 Powerbook... ho ancora la geekBava).
E penso... che con un PowerbookG4 partizionerei definitivamente per condividere con OSX Ubuntu e compilare rilassato senza temere di dovermi addormentare prima di vedere terminata una compilazione di GIMP tramite Pkgsrc di NetBSD...eh gia...dovete sapere che ha un overhead notevole per garantire la massima qualità di codice in crosscompiling e crossplatform...dare ed avere ;)
Piu andiamo avanti e piu questa ridicola saga dei Macbook Intel based andrà avanti ed i Powerbook costeranno sempre meno sempre meno sempre meno..fino a non trovarne piu :) ...ed intanto gli IBM G5 fanno sognare sempre più... vabbe torno sul codice...e ci ripenso.
Mi interessa arrivare alla Ubuntu 2008.4 che sembra essere una LTS con una macchina con supporto grafico 3D completo perche a quel punto Compiz & Co sarà una realta consolidata della quale non si puo far piu finta di nulla.

05.28 A.M.
Uno SpatialBundle che contiene uno Jar esegue uno spatialbundle Jre passando se stesso come parametro a runtime.
Quindi:
$ioMioJar ioJre
esegue
$ioJre /tmp/Programs/ioMioJar/Linux-ix86/bin/MioJar.jar

06:42 A.M.
Sessione terminata, svengo dal sonno.
Sviluppo un template per un wrapper al binario principale.
Se clicco ad un Jre mi chiede un Jar se clicco ad un Jar mi chiede un Jre.

15:27 P.M.
Dormito,svegliato,bevi acqua,lava denti,doccia,piatto di muesly con yogurt all'Aloe.
Modalita MacinaCodice ON
No Stop Coding.

19:18 P.M.
SpatialFactory 0.7.6 out.
Respatializing ioBash3.2 con SpatialFactory 0.7.6

20:08 P.M.
Bundling SpatialFactory 0.7.6 per fornire agli sviluppatori un tool spacialized.

Domenica 26 Agosto 2007
Colonna (Casteli Romani) - Rome Italy

12:51 P.M
Dopo due giorni in modalità "macinacodice" full immersion sono arrivato alla versione 0.8.4

Il mio attuale versioning funziona cosi:
X.Y.Z
dove X per ora è 0
Y ha un range da 0 a 9
Z ha un range da 0 a 9

Z viene incrementato di una unità ogni qualvolta viene introdotto almeno una modifica strutturale dove le funzionalita (retrocompatibili) vengono modificate, eliminate, sostituite, aggiunte.

Se vengono solo risolti bug questi vengono testati con versioni del tipo:
X.Y.Z.bugN
Ma al rilascio di buN viene anche rilasciato un Z+1 in questo modo la versione successiva eredita la risoluzione dei bug e qualche funzionalità in più cosi il rilascio non risulta sterile alla sola risoluzione del bug (che saranno sempre presenti per tutto l'arco della vita di tutto software del mondo).

Ad oggi le funzionalità di Infodomestic Objects Spatial Bundles producono i seguenti effetti interattivi:
L'utilizzatore clicca sullo SpatialBundle questo si carica in memoria ram/disco, attiva un'icona nel system tray ed avvia un programma wrapper che esegue i comandi specificati dal packager.
Cliccando sull'icona rappresentativa nel system tray si apre un menu contestuale con le seguenti voci:

About (informazioni testuali sul contenuto pagante dello SpatialBundle)
Clear (libera dalla memoria lo SpatialBundle)
Send to... (invia a: Cartella, Mail, Bluetooth, ....)
Properties (Statistiche dinamiche)

18:14
SuperMegaBug risolto.

Considerando che il CrossBundle è disponibile anche per gli altri utenti del computer sarebbe opportuno rendere disponibili in una locazione di comodo anche gli SpatialBundle singoli.
Ogni SpatialBundle dopo essersi aperto in un CrossBundle condiviso copia se stesso nella locazione condivisa.
La copia avviene solo se si apre in questo modo si previene una scrittura in uno spazio dove già presente ma appartenente ad altro utente.Non è necessario, cosi, un controllo di presenza per questa specifica azione.
La chiusura del CrossBundle deve eliminare anche la presenza dello SpatialBundle condiviso.
Al riavvio del computer tutti i CrossBundle e SpatialBundle condivisi vengno eliminati.
L'osservazione degli oggetti puo avvenire tramite il menu Action di qualsiasi Bundle nel system tray tramite il menu Send to... dove è possibile spostare lo SpatialBundle originale in una qualsiasi cartella (o spedire per posta o bluetooth o latro via plugin TODO).
Il menu Send to... potrebbe prevedere la possibilità di osservare il contenitore di tutti gli SpatialBundles condivisi nel sistema dagli utilizzatori attivi.
Esempio:
Send to...
• Desktop
• Another Destination...
• Mail
• Bluetooth
• SMS
∘ Infrared irDa
• Open All Shared Items...

Nel caso di tentata sovrascrittura nel Desktop o nella destinazione scelta l'azione ritorna un messaggio di avvertimento senza sovrascrivere.

Modificato il menu Action le funzioni di:
About
Play
Controls
Remove
Send to...
Properties

20:20
Ogni SpatialBundle ora viene condiviso in: /tmp/InfodomesticObjects/SpatialBundles/SharedItems/
cio comporta dei benefici per tutti gli utilizzatori concorrenti dello stesso computer.
Ogni utilizzatore è in grado anche di cancellare accidentalmente la propria copia e quindi copiare di nuovo dal menu Action lo SpatialBundle originale in una nuova locazione.

Sabato 1 Settembre 2007
Colonna (Casteli Romani) - Rome Italy

15:00
SpatialBundles con SpatialFactory 0.8.6

Sessione SpatialFactory 0.8.6 aperta

Modificato il menu Action le funzioni di:
About
Open
Send
Controls
Remove

Remove è un'azione drastica che richiede maggiore riflessione e minore impulsività quindi viene posto alla fine dell'elenco.

About al primo posto per sopperire anche ad eventuale click isterico.

23:00

Lavoro ancora assiduamente su una funzionalità che permette ad uno SpatialBundle di trovare una risorsa in un intorno stretto del luogo dove si trova posizionato lo SpatialBundle stesso.

Definizione: Considero un intorno stretto del nodo campione, il grafo costituito dai nodi connessi con una distanza massima di 3 dal nodo campione.

Questo metodo dovrebbe permettere a SpatialBundle di trovare velocemente alcune dipendenze nel caso non le avesse con se.

Ad esempio ioJGnash necessità dell'adattatore ioJre per funzionare.Potrebbe incorporarlo con se aumentanto di peso, ma anche cercarlo localmente.Considerando che ioJre pesa 99Mb, risulta essere un connettore non facilmente trasportabile per SpatialBundle di dimensioni 1/10 (è un nonsense dove ci sono lacune di banda come l'Italia ora, pero fuziona ottimamente per software distribuito tramite supporto ottico).

Domenica 09 Settembre 2007

Implementazione della modalità di avvio --silent
Questa modalita deve permettere di caricare in memoria l'applicazione senza avviare interfaccie grafiche.

La modalità si attiva con un'opzione passata allo SpatialBundle
ie: ioPippo --silent

Questa modalità esegue le seguenti operazioni:
Carica la memoria.
Attiva la sua rappresentazione nel Tray.
E' necessario prevedere una funzione del tipo:
--silent-nodock
che evita anche l'esplicitazione nel Dock.
Potrebbero beneficiare di questa funzione i Framework di supporto ad esempio Kdelibs, QT
Ad esempio ioAmarok attiva ioQt e ioKdelibs i quali attivano la loro rappresentazione nel Dock.Tramite la seguente definizione è possibile limitare la rappresentazione al solo ioAmarok:

ioQt --silent-nodock
wait
ioKdelibs --silent-nodock
wait
ioAmarok

E' una modalità deprecabile normalmente in quanto fuori dal controllo visuale dell'utilizzatore il quale deve sempre avere un ritorno di esperienza dall'attività del Computer.

Nella lavorazione di SpatialBundle 0.8.8 integro la funzione fSay come primitiva del futuro ioSpeak.
Questa funzione sostituisce il normale output di dialogo con un dialogo dedicato per l'ambiente in uso.
E' in grado di emettere informazioni utilizzando i widget dell'ambiente principale di run e si adatta in funzione della disponibilità fino a ridurre l'output ad un semplice echo.
Sono stati presi in considerazione i seguenti widget sets:
Zenity
GDialog
KDialog
XDialog
Dialog
bash echo
Quest'ultimo non deve funzionare necessariamente da una sessione di console ma anche da una sessione X dove non sono presenti i precedenti dialogs widget.Nel caso apre una finestra xterm (o altri disponibili) ed emette l'informazione.
L'ultimo stadio è l'implementazione parallela di un sintetizzatore vocale che lavora in parallelo.

ioCalendar Sunbird ready for the masses




Pubblicato ioCalendar Sunbird versione 0.5 con SpatialBundles 0.8.6

SpatialBundle vs OSX Bundle

Dedicato ai miei 200 Twitter Followers
grazie di cuore ;)



La Apple promuove presso la comunita degli sviluppatori OSX un documento di 66 pagine per descrivere le varie modalita di packaging and delivering del software.
Essa considera 5 distinte aree di applicazione per tipologie di packaging:

Type Destination
Application /Applications
Framework /Library/Frameworks
Font /Library/Fonts
Documentation /Library/Documentation
Command-line tool /usr/local/bin














Un esempio pratico:

Component Component type Installation destination
Levon.app
Application
/Applications
Levon_User_Guide.pdf Documentation /Library/Documentation
SharedServices.framework Framework /Library/Frameworks

E' facilmente intuibile che dal punto di vista posizionale, l'applicazione Levon subisce ancora un effetto UNIX filesystem.
Lo UNIX filesystem per l'utilizzatore casalingo tipicamente monoutente è fortemente DEPRECATO per i sistemi Infodomestic Objects.

La tecnologia degli SpatialBundles di Infodomestic Objects di nuovo riducono enormemente la complessita topologica ed organizzativa anche nei confronti degli sviluppatori che devono concentrarsi sul loro prodotto piuttosto che assecondare l'architettura, la quale, dovrebbe essere sempre un servizio che faciliti il lavoro e non qualche cosa che lo rende piu complesso.

Di nuovo il processo di delivering finale di un Bundle OSX utilizza i seguenti blocchi:

Product -> Container -> Transport -> Computer

Il blocco Product è un Bundle directory quindi deve necessariamente essere inserito in un contenitore che lo riduce ad un file per poter essere agevolmente manipolato.
Il Container OSX è tipicamente un archiviatore o un file immagine (.zip || .dmg).
Nel primo caso l'utilizzatore deve attivamente estrarre il contenuto dall'archivio .zip e poi operare manipolazioni sul suo contenuto (esempio duplicarlo, attivarlo con un click, rinominarlo, etc).
Nel secondo caso (immagine DMG) il Container è un vero e proprio filesystem chiuso e rappresentato da un file.Nel momento che l'utilizzatore clicca sul file .dmg le funzioni di systema gia presenti in un computer con OSX automaticamente si preoccupano di aprire il contenitore e rendere subito disponibile alla manipolazione il contenuto.

Uno SpatialBundle Infodomestic Objects risolve drasticamente la maggior parte delle operazioni che l'utilizzatore finale deve eseguire per prendere possesso delle funzionalita del programma.
Uno SpatialBundle è Product e Container nello stesso momento quindi la complessità di retrieving e manipolazione per l'utilizzatore finale si riduce a:

SpatialBundle -> Transport -> Computer/Run

Le azioni di un utilizzatore Infodomestic Objects nel tramite di uno SpatialBundle si possono ridurre a pochi passi:

La persona trova lo SpatialBundle in internet, clicca nella pagina web, il programma automaticamente si scarica nel Desktop e si esegue.
Altro caso, la persona compra una raccolta software su supporto ottico (CDROM o DVD), trascina l'icona del programma nel desktop e poi clicca sopra ed il programma parte.

Il vantaggio principale di utilizzare un filesystem di tipo .dmg contro un .iso sta principalmente nel fatto che è possibile parcheggiare file e mantenere intatti gli attributi del file stesso con particolare riguardo all'attributo di esecuzione che in un filesystem .iso non è possibile.
Lo svantaggio è che bisogna sempre far riferimento a tecnologie di parsing OS centriche e quindi delegare alla bonta del proxy in questione l'eventualita di potersi eseguire.

Nel caso di Linux sarebbe possibile usare un semplicissimo filesystem ext2 e simulare con un proxy installato sul sistema gli stessi effetti della manipolazione di un .dmg.
In questo caso verrebbe sempre meno uno dei concetti di Infodomestic Objects ovvero decentralizzazione del potere esecutivo per passarlo in mano all'utilizzatore che usa il suo spazio protetto di memoria.
Un secondo problema che riguarda sempre la centralizzazione è relativo al comando di mount necessario per eseguire il mounting dell'immagine il quale richiede un accesso di amministratore (assolutamente DEPRECABILE).
Con una classica installazione Desktop di Ubuntu non è possibile costruire workaround efficienti per simulare l'autofissaggio (mounting) di un immagine (equivalente di DMG in OSX) cosi come avviene intimamente nel Finder di OSX.

L'unica clasuola chiesta all'utilizzatore di Infodomestic Objects è quella di abilitare la capacita di esecuzione del file, che avviene solo la prima volta per quel programma.
Questa clausola aumenta la sicurezza in quanto nel caso di malware/virus/worms allarma attivamente l'utilizzatore che sta per eseguire un programma e non, quindi, osservare un oggetto dati tipo immagine, musica, documento...

E' previsto l'inserimento di tecnologia di intelligenza artificiale per permettere un uso piu autonomo e consapevole del software permettendo che l'utilizzatore possa anche sbagliare, come sua umana natura e diritto.

Etichette

Latest Releases

Starred items

Flash On The Air

Subscribe to Mailinglist

Panel

.

HCCard OpenID ClaimID

Contact Infodomestic | Terms of Use | Privacy Policy

Copyright © 1994-2011 Infodomestic.com All rights reserved.