Com’è dura la professione!

26 Ottobre 2009

Compilare KDE 4.4 con Qt4.6 e kdesvn-build

Archiviato in: Open Source, QT, kde4 — lbell @ 21:55

Con il passaggio del trunk di KDE a Qt4.6 avvenuto il 10 ottobre non è più possibile utilizzare il sistema di build basato su kdesvn-build 1.9.1, dato che i sorgenti delle librerie Qt sono affidati a git e kdesvn-build si interfaccia con Subversion, occorrerebbe gestire manualmente il modulo qt-copy. Occorrerebbe, perché è appena stata rilasciata la versione 1.10, che è in grado di gestire git per il solo modulo qt-copy. E’ disponibile nel sito ufficiale da un paio di giorni e nel repository svn di KDE in branches/work/kdesvn-build-1.10. Per usarlo, occorre modificare la sezione relativa al modulo qt-copy nel file .kdesvn-build.rc nel modo seguente nella sezione dedicata a git:

module qt-copy
	#opzioni di compilazione
	configure-flags -system-zlib -qt-gif -system-libjpeg -system-libpng \
			-no-exceptions -fast -debug -dbus \
	            -no-phonon # Phonon built separately
	make-options -j2

	# opzioni di gestione git
	branch 4.6-stable-patched
	repository http://git.gitorious.org/+kde-developers/qt/kde-qt.git
end module

Sito di kdesvn-build:

http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php

19 Marzo 2009

Un viaggio in WebKit transitando per Plasmaland

Archiviato in: Open Source, Programmazione, QT, kde4 — lbell @ 22:55

Scrivendo una piccola utility per Plasma mi sono fatto tentare dall’uso della nuova versione di WebKit per gestire l’interfaccia utente.

In effetti integrare WebKit in un programma QT o KDE non è troppo difficile, grazie all’uso degli slot e delle metainformazioni che QT aggiunge alle classi. E’ possibile richiamare direttamente i metodi di oggetti residenti nel nostro programma, sfruttando il meccanismo dei segnali e degli slot, dalla pagina HTML via Javascript. Per prima cosa occorre inserire nelle pagine HTML riferimenti agli oggetti C++ della nostra applicazione come se fossero variabili Javascript native, utilizzando un identificatore che verrà mappato sugli oggetti fisici a tempo debito. Fatto ciò possiamo codificare funzioni Javascript che sfruttino i metodi dichiarati come slot, in corrispondenza di determinati eventi, come la pressione di un pulsante. Possiamo quindi dalla pagina HTML eseguire metodi dei nostri oggetti passando quali parametri entità definite al livello HTML, come ad esempio i valori di un form.

Ogni collegamento tra WebKit e la nostra applicazione avverrà sempre tramite funzioni Javascript, quindi sarà WebKit ad iniziare le operazioni.

Facciamo un esempio:

Supponiamo che il nostro obiettivo sia di richiamare da Javascript il metodo ‘reload’ di un’istanza di una classe C++ descritta in questo modo:

class DBusApplet : public
Plasma::PopupApplet
{
    Q_OBJECT
    ...
public
slots:
    void reload(const QString &selection);
private:
    ...
};

in Javascript la nostra istanza può essere mappata come segue, assumendo che sia stata associata all’identificatore ‘appletInterface’:

function execute(selection)
{
    appletInterface.reload(selection);
}

Dato che la conversione dei tipi di base è automatica, quello che occorre fare è ‘iniettare’ gli oggetti C++ all’interno del componente WebKit, ma è necessario attendere che sia il componente ad avvertirci del momento più opportuno.

Al termine del caricamento di una pagina HTML, che la si assegni direttamente da programma o attraverso un URL, il frame corrente emette infatti il segnale “javaScriptWindowObjectCleared”, che occorre avere cura di catturare nel solito modo che QT ci mette a disposizione:

connect(page()->mainFrame(),

SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(populateJavaScriptWindowObject()));

Alla ricezione del segnale possiamo, attraverso il metodo collegato (nell’esempio precedente ‘populateJavaScriptWindowObject’), passare finalmente il riferimento dei nostri oggetti a WebKit attraverso il metodo addToJavaScriptWindowObject, i cui argomenti sono il nome della variabile Javascript associata e l’indirizzo dell’oggetto stesso.

page->mainFrame()->addToJavaScriptWindowObject(“appletInterface”, this);

Se tentassimo di associare i nostri oggetti prima che la pagina sia stata effettivamente caricata, il collegamento non avrebbe successo.

http://doc.trolltech.com/4.4/qtwebkit.html

http://webkit.org/

http://code.google.com/p/dbusapplet/

10 Gennaio 2008

Anjuta è ora parte di GNOME

Archiviato in: Linux, Open Source, Progetti su SourceForge, Programmazione — lbell @ 22:43
Tags: , ,

Un piccolo annuncio che mi riempie di soddisfazione, anche se ormai sono anni che non vi riverso una linea di codice: Anjuta, un IDE per programmare in C e C++ per l’ambiente GNOME farà ufficialmente parte dei moduli di GNOME 2.22 come si legge in questa mail. Complimenti agli sviluppatori attuali ed una lacrimuccia in memoria di quando programmavo nel mio linguaggio preferito (il C) e Linux per me era ancora una (bellissima) novità. Di strada ne è stata fatta tanta.

Anjuta 3 Anjuta 2 Anjuta 1

Il sito ufficiale di Anjuta:

http://www.anjuta.org/

Il sito di Anjuta su SourceForge:

http://sourceforge.net/projects/anjuta

 

8 Gennaio 2008

Perché è importante usare standard aperti (ed essere contrari a OOXML)

Archiviato in: Microsoft, Open Source, cosi' va il mondo — lbell @ 23:26

La fine del supporto a certi tipi di “vecchi” formati di file decretata da Microsoft, fa riflettere sull’utilità di impiegare formati proprietari per memorizzare i documenti. In un altro blog leggo che decine di documenti religiosi e scolastici a causa di questa decisione rischiano di essere perduti perché fra qualche tempo non esisteranno più programmi in grado di leggerli, mentre gli atti più vecchi scritti su carta possono essere tranquillamente consultati.

L’accessibilità dei documenti elettronici memorizzati in formati proprietari, essendo molto spesso non nota la loro codifica, dipende dalla volontà della ditta che detiene l’ideazione di tali formati. Qualora la ditta fallisse o non avesse più convenienza ad aggiornare i programmi perché possano funzionare sui moderni sistemi operativi (tutti casi occorsi nella realtà), l’utente o l’autore di tali documenti troverebbe di fatto un ostacolo insormontabile tra sé ed i propri dati.

Cosa è successo in realtà? Che un’azienda, esercitando un suo legittimo diritto, ha deciso di togliere il supporto ad alcuni formati di file proprietari, di programmi non più funzionanti sugli odierni sistemi operativi. Lo ha fatto per la propria convenienza, citando come spiegazione ragioni di sicurezza, mediante la pubblicazione di aggiornamenti di manutenzione ai suoi programmi da ufficio. Per amor del vero devo dire che esiste una scappatoia, anche se complicata, per accedere ancora a tali formati, ma il danno maggiore lo si avrà fra qualche tempo, quando magari si avrà bisogno di consultare i documenti storici e non si saprà come.

In un mondo dove occorre lavoro ed impegno per essere continuamente competitivi, sprecare tempo e lavoro per poter di nuovo accedere ai vecchi documenti mi sembra una vergogna. Viviamo tempi in cui accadono cose straordinarie, da piccolo mai avrei pensato che potesse cadere il confine con la Slovenia nella concordia più totale o che la Cina potesse diventare la fabbrica del mondo, perché dobbiamo perdere tempo ed energie per capire come rileggere i documenti di cinque o dieci anni fa?

È facile ora consigliare di utilizzare standard aperti per la memorizzazione dei documenti, ma che alternative reali esistono per evitare di non potervi più accedere fra, diciamo, cinque anni? Tutti pensiamo di poter vivere almeno cinque anni ancora, vero? Altrimenti non perdereste tempo a leggere queste righe.

  1. Utilizzare il programma che va per la maggiore, non accontentarsi di nulla di meno, il secondo in classifica domani sarà reso obsoleto dalla nuova versione del sistema operativo o magari la ditta che lo produce sarà fallita o scalata. Ma nemmeno così sarete sicuri.

  2. Usare uno standard aperto, e per aperto non intendo aperto per finta come è stato fino ad oggi OOXML, ma un formato utilizzabile senza restrizioni né condizioni, OpenDocument, tanto per essere chiari.

Con un formato aperto sarà sempre possibile accedere ai propri dati.

Decidere di utilizzare o meno un formato aperto è di una scelta legittima, ma penso che almeno le associazioni e le pubbliche amministrazioni abbiano il dovere di utilizzare e pubblicare documenti in formati aperti.

L’uso di formati come OpenDocument, PDF ed HTML è una garanzia prima di tutto per l’utente.

Link:

http://www.tedcarnahan.com/2008/01/02/three-steps-to-open-source-in-the-church/

http://it.slashdot.org/firehose.pl?id=443210&op=view

http://support.microsoft.com/kb/938810/en-us

http://www.news.com/Office-2003-to-get-security-upgrade/2100-7355_3-6179672.html?tag=st.nl

http://www.consortiuminfo.org/standardsblog/index.php?topic=20051116124417686

http://www.noooxml.org/

http://en.wikipedia.org/wiki/Opendocument

http://www.fsf.org/campaigns/odf.html

 

 

 

 

4 Gennaio 2008

È nato il nuovo anno, è nato KDE 4.0.0

Archiviato in: Open Source, kde4 — lbell @ 21:47
Tags: ,

Non sarà il passo che porta alla salvezza del genere umano, o un capolavoro come la Gioconda, ma KDE 4.0.0 è praticamente pronto per il rilascio di metà gennaio, proprio nei giorni del mio compleanno, in un evento in grande stile a Mountain View nella sede di Google. La versione attuale non sarà tuttavia un ambiente che qualunque utente potrà desiderare di utilizzare già da ora al posto della 3.5 attuale, ma piuttosto una base su cui far crescere il KDE di domani: il processo di sviluppo del software Open Source è diverso da quello del software proprietario e questo post di Aaron Seigo lo descrive bene:
http://aseigo.blogspot.com/2008/01/talking-bluntly.html.
La fretta e la confusione con cui sono state eseguite le ultime traduzioni per rientrare nella deadline imposta, valida anche per il congelamento del codice, mi ha ricordato per certi versi l’atmosfera di un giornale al momento di andare in stampa. Più di 700 commit in un paio di giorni non è una cifra da disprezzare.
Forse è troppo tardi per la applicazioni desktop, ma KDE4 è comunque un’avventura affascinante.
Buon anno KDE, da lunedì si torna al lavoro con Windows.

4 Dicembre 2007

Vita con Android

Archiviato in: Android, Open Source, Programmazione — lbell @ 21:09
Tags: ,

Finalmente ho avuto l’occasione di vedere da vicino e di provare l’ambiente di sviluppo del gPhone.

La prima cosa che si nota rispetto agli ambienti di sviluppo ‘tradizionali’ è la facilità dell’installazione: basta scompattare i file in una directory ed aggiungere una variabile di ambiente. Se si intende sviluppare con Eclipse (cosa che facilita la vita) occorre scaricare dal sito di Google un plugin. Un altra cosa che lascia ben disposti è il fatto che lo SDK sia stato portato sotto Linux, Windows e MacOS demandando la scelta dell’ambiente operativo allo sviluppatore.

L’emulatore di dispositivo in dotazione sembra ben fatto, ma a volte, almeno sotto Linux, in fase di debug perde il sincronismo con Eclipse. Dal momento che in realtà gli strumenti utilizzati dietro le quinte sono programmi pilotabili a linea di comando, adb nello specifico, presenti nella directory tools del SDK, in caso di emergenza possiamo killare il processo adb con opzione start-server permettendo ad Eclipse di rilanciarlo in modo pulito alla sessione di debug successiva. Anche lo SDK stesso sembra solamente il primo abbozzo di un sistema più completo e diverse funzionalità sono riportate non funzionanti nella mailing list dedicata al progetto.

Nel complesso come primo passo Android sembra ottimo, la documentazione è esaustiva e copre ogni parte del toolkit, ma occorre aspettarsi una sviluppo del sistema.

Come banco di prova ho iniziato un progettino per visualizzare i feeds del sito planet.kde.org (uno dei miei preferiti). Ho cercato di esplorare un po’ di tecnologie, servizi in background, uso del database sqlite, viste personalizzate e l’integrazione del browser internet incluso. Il tutto è stato abbastanza agevole, anche se non sono state investigate le capacità multimediali del sistema, di cui molti sviluppatori si sono lamentati. Ad ogni modo il progetto è stato pubblicato su Google code all’indirizzo http://code.google.com/p/planetandroid/ sotto l’obbligatoria licenza GPL.

3 Maggio 2007

ApacheDS, server LDAP da Apache (e LDAP Studio)

Archiviato in: Java, Open Source, Programmazione — lbell @ 20:27

Qualche giorno fa è stato rilasciata una nuova versione (1.5) di ApacheDS, un server LDAP scritto interamente in Java. LDAP è ormai diventato centrale nel mondo IT per la gestione delle identità degli utenti in ambienti di una certa complessità. Microsoft vi ha decisamente puntato, mentre il mondo Open Source è un po’ più statico a questo riguardo.

ApacheDS, server nato da un progetto Apache, ha diverse caratteristiche interessanti: è scritto in Java, è embeddable, estensibile, supporta filtri, trigger (che possono implementare integrità referenziale) e stored procedure.

Sono previsti tool di configurazione per semplificare la vita agli utilizzatori ed esiste già uno strumento, LDAP Studio basato su Eclipse che, oltre a permettere la navigazione dei dati, può editare gli schemi (e presto modificare direttamente ads) e presto avrà altre funzionalità specifiche per ads.

Sul sito (http://directory.apache.org) ci sono guide e tutorial.

A dire la verità dopo alcune prove, ho riscontrato qualche problema con il consumo di memoria. La quantità di memoria consigliata e di default è di 384MB ( da settare nel file di gestione del servizio) ma sulla mia macchina con solo 512MB con tale valore ads non è riuscito a partire causa allocazioni fallite. Ho dovuto abbassare il limite ad un più ragionevole 128 MB per avere la soddisfazione di vederlo partire.

Oltre al sito del progetto si può trovare una presentazione sul sito della conferenza europea di Apache 2007 http://www.eu.apachecon.com/

LDAP Studio

13 Febbraio 2007

Marzo, il mese dei bug e di PHP

Archiviato in: Linux, Open Source, Programmazione, php — lbell @ 21:42

Marzo sarà il mese dei bug di PHP. Stefan Esser, il fondatore del progetto Hardened-PHP, deluso dal comportamento del team di sviluppatori e degli addetti alla sicurezza del linguaggio probabilmente più diffuso nelle applicazioni web, ha deciso di rivelare un bug al giorno per smuovere le acque. Lo si può leggere sul suo blog e in un’intervista su SecurityFocus. PHP è l’arma principale dei siti web che sfruttano Apache e software Open Source e fa molta impressione leggere le serie accuse che Esser muove ai suoi sviluppatori. Sapere che applicazioni come i CMS più diffusi, Typo3, Drupal, Mambo ed altre applicazioni largamente diffuse come Horde, Mediawiki, WordPress possono essere a rischio al di là di come sono state scritte, ma solo per il sistema con cui sono state realizzate, lascia un po’ di amaro in bocca, tanto più se si pensa all’enorme numero di siti che resteranno unpatched per molto tempo ancora (gli aggiornamenti solitamente hanno una inerzia molto alta nella maggior parte dei casi). Chi attacca i sistemi conosce ovviamente questi problemi molto bene, i web master no, solo ora se ne potranno rendere conto. Un discorso a parte merita il come sono state scritte le applicazioni stesse, ma questa è un’altra storia.

Forse una lezione salutare, ma di cui non se ne sentiva la necessità.

Una notizia che spicca proprio nel momento in cui Microsoft sta profondendo il suo massimo sforzo nel campo della sicurezza. E’ molto tempo che non esce una vulnerabilità seria per IIS6 e l’uso di C# ha permesso di abbattere i problemi di errori dovuti a buffer overflow ( anche se qualche problema resta….. ). Viene veramente da pensare se sia il caso di migrare i siti ad ASP.NET, magari nascosto dietro un Apache come protezione supplementare.

3 Gennaio 2007

Provare un sistema LAMP sotto Windows senza fatica.

Archiviato in: Linux, Open Source, php — lbell @ 21:05

Nel DVD allegato al numero di PC Professionale di questo mese si trova una macchina virtuale vmware (e relativo player) contente una installazione di LAMP, (Ubuntu) Linux, Apache come server web, MySQL database e PHP come linguaggio di script ed una serie di applicazioni già configurate, pronte per essere provate, una ventina in totale. Si va dalla suite di collaborazione eGroupware ai gestori di contenuti (CMS) ai programmi di e-commerce, ai gestori di blog. L’uso di una macchina virtuale permette anche a chi ha solo Windows di toccare con mano gli applicativi web in questione senza dover installare nulla, a parte il player di vmware, ovviamente. C’è da sottolineare che non serve comunque utilizzare Linux per gestire la maggiore parte degli applicativi in questione visto che molti funzionano anche sotto Windows e IIS, data la portabilità di PHP e MySQL.

2 Gennaio 2007

Il signor Monti e la Wikipedia.

Archiviato in: Open Source, letture — lbell @ 21:04

In prima pagina nell’edizione odierna del serissimo , almeno per me, parere personale, “Corriere della Sera” si trova un articolo del serissimo signor Mario Monti. Non parlerò dei contenuti dell’articolo, ma del fatto che per definire un termine si cita Wikipedia. Sembra che il virus degli strumenti costruiti dalla comunità sia arrivato parecchio in alto, tra le persone serie.

Pagina Successiva »

Blog su WordPress.com.