Da KDE 4.1 beta 2 a KDE 4.1 RC1

Sui repository PPA di Kubuntu (deb http://ppa.launchpad.net/kubuntu-members-kde4/ubuntu hardy main) sono disponibili i pacchetti aggiornati per KDE 4.1. Quando furono rilasciati i pacchetti per KDE 4.1 beta 2 li installai usando questo reposiotry, e poi eseguii l’installazione a parte del (meta)pacchetto kdepim-kde4, che contiene kontact, kmail, akgregator e così via. Oggi sono stati messi sui repository i pacchetti per KDE 4.1 RC1. Eseguendo il solito sudo aptitude dist-upgrade l’installazione falliva così:

Preparing to replace kde-icons-oxygen 4:4.0.83-0ubuntu1~hardy1~ppa5 (using .../kde-icons-oxygen_4%3a4.0.98-0ubuntu1~hardy1~ppa1_all.deb) ...
Unpacking replacement kde-icons-oxygen ...
dpkg: error processing /var/cache/apt/archives/kde-icons-oxygen_4%3a4.0.98-0ubuntu1~hardy1~ppa1_all.deb (--unpack):
trying to overwrite `/usr/lib/kde4/share/icons/oxygen/32x32/actions/appointment-new.png', which is also in package libkdepim4-kde4
dpkg-deb: subprocess paste killed by signal (Broken pipe)
Errors were encountered while processing:
/var/cache/apt/archives/kde-icons-oxygen_4%3a4.0.98-0ubuntu1~hardy1~ppa1_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Questo errore impedisce l’installazione di kdebase-runtime, che a sua volta impedisce il funzionamento di praticamente tutti i programmi di KDE. La soluzione, trovata immediatamente chiedendo aiuto al canale #kubuntu-kde4 su freenode è eseguire:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/kde-icons-oxygen_4%3a4.0.98-0ubuntu1~hardy1~ppa1_all.deb

Fatto questo, forzando la sovrascrittura di alcuni file, è possibile riavviare il processo di upgrade, che si spera vada a buon fine :)

Il problema è dovuto al fatto che non è ancora disponibile sui repository il pacchetto kdepim RC1, il che porta a questo conflitto di versioni.

Look nativo su Skype

La versione per Linux di Skype è costruita sul toolkit Qt, per cui si integra particolarmente bene nel look & feel di KDE. Skype però forza il tema “cleanlooks”, mentre le versioni più recenti di Kubuntu usano il tema Plastic (su KDE 3.5.9) o Oxygen (su KDE 4), per cui l’aspetto finale “stona” un po’ con il tema di default. Per fortuna si può costringere Skype a utilizzare il look & feel predefinito del sistema. Per farlo è sufficiente lanciarlo aggiungendo lo switch --disable-cleanlooks:

skype --disable-cleanlooks

L’aspetto di Skype su KDE4 è quello che potete vedere nello screenshot qui sotto.

Trucco magico di velocità

Trucco per Kubuntu per accelerare l’avvio delle applicazioni:

  1. Create una cartella vuota ~/.compose-cache
  2. Aprite un qualunque programma di KDE che contenga un componente per scrivere testo
  3. La cartella ~/.compose-cache conterrà un file il cui nome è una stringa del tipo l4_024_313cb605_00280cc0

Le applicazioni KDE/Qt/GTK dovrebbero ora avviarsi in 50/150 ms in meno.

Ho testato questo trucco solo su Kubuntu, ma dovrebbe funzionare su qualunque altra distribuzione. Se la vostra cartella /var/cache/libx11/ però non è vuota, ad esempio per chi usa SuSE, allora questa piccola ottimizzazione è già attiva.

Per i curiosi: creare la cartella ~/.compose-cache attiva una ottimizzazione creata da Lubos Lunak un po’ di tempo fa che è stata riscritta e integrata in libx11. Di solito all’avvio le applicazioni leggono le informazioni sul metodo di input dal file /usr/share/X11/locale/<locale>/Compose. Il file Compose è piuttosto lungo e richiede un po’ di tempo per essere elaborato. libX11 può creare una cache delle informazioni estrapolate molto più veloce da leggere in seguito, ma ri-utilizzerà una cache solo se può accedervi in /var/cache/libx11/compose o in ~/.compose-cache, se tale cartella esiste già.

Ulteriori informazioni
Via Robert Knight’s blog

Le nuove tecnologie di KDE 4.0 al Release Event

Al Google Campus di Mountain View in California si sta svolgendo in queste ore il release event di KDE 4.0.
Particolarmente interessante è la presentazione di Aaron Seigo, benevolente dittatore di KDE, dove vengono presentate le tecnologie e i framework che costituiscono la struttura fondante di KDE 4 e ne permetterano, si spera, un ottimo sviluppo. Il ciclo di vita di KDE 4 è previsto essere lungo come quello di KDE 2 e KDE 3 sommati, per cui è prioritario avere delle solide basi che permettano a KDE di evolvere in modo robusto nel tempo. I componenti presentati sono:

Oxygen
Non si tratta propriamente di una tecnologia, ma è l’appeal grafico di KDE. Il progetto Oxygen si è occupato di ridisegnare completamente le icone di KDE (alcune migliaia), ridisegnare il look & feel delle finestre e di creare un nuovo tema di suoni per KDE 4.
Solid
È un set di API che permette un’interazione semplice e multipiattaforma con l’hardware. Permette ai programmi di sapere ad esempio quando viene collegata una fotocamera o un dispositivo di memorizzazione esterno, quali sono le impostazioni attuali del risparmio energetico, se siamo connessi alla rete o ricevere una notifica quando internet è accessibile e così via.
Phonon
Per usare le parole di Seigo, “Phonon è per il multimedia quello che Solid è per l’hardware”. Phonon permette alle applicazioni di interagire con il sottosistema multimediale del desktop environment. Seigo spiega che in cinque linee di codice è possibile realizzare un semplice player video. Con delle API concise e multipiattaforma è possibile sapere se una webcam è collegata e eventualmente utilizzarla.
Akonadi
Nato da KDE PIM, è il servizio di memorizzazione per la gestione delle informazioni personali (PIM). Permette di memorizzare le informazioni delle suite PIM (contatti, email, calendari, appuntamenti) e le rende disponibili attraverso un set di API a tutte le applicazioni. Con poche linee di codice gli sviluppatori di KDE PIM sono riusciti a creare un’applet sul desktop (usando Plasma) che mostra in real time le email in arrivo, in modo ovviamente sincronizzato con la suite principale.
Decibel
È un set di API che permette di interagire con diversi supporti di comunicazione come VoIP, chat e instant messaging anche contemporaneamente.
Kross
È ciò che dovrebbe attirare frotte di sviluppatori su KDE 4 :) È un layer trasparente che permette di accedere alle funzionalità di KDE e delle applicazioni che lo supportanto con qualunque linguaggio di scripting. Attualmente sono supportati “out of the box” ruby, python e javascript. Sono in corso i lavori su krossjava, che permetterà anche l’utilizzo di Java. Se ad esempio una azienda usa molto python e KOffice è possibile esportare degli oggetti da un documento di KOffice e manipolarli in python.
Sonnet
È un correttore ortografico (e in futuro correggerà anche gli errori di grammatica) capace di riconoscere la lingua che sta analizzando adattandovisi automaticamente. Linux.com ha pubblicato un articolo su Sonnet.
DXS
È il protocollo descritto dal Get Hot New Stuff di freedesktop.org che specifica come scaricare in modo user friendly. Per chi conosce KDE è il nuovo protocollo alla base delle finestre di dialogo che permettono di aggiungere temi in Kopete, script in Amarok, widget in SuperKaramba. Un uso abbastanza perverso può essere quello di usarlo per mettere a disposizione calendari di appuntamenti e notificare autmaticamente chi ne ha scaricato uno di eventuali modifiche. Nella sua presentazione Seigo mostra come KStars usando KNewStuff2, che a sua volta usa DXS, possa scaricare in modo semplice per l’utente le informazioni sugli oggetti celesti, e altrettanto facilmente disinstallarli.
Nepomuk
È la tecnologia che gestisce i metadati su KDE 4. Nepomuk permette di aggiungere tag e metadati ai file, consentendo di effettuare ricerche molto complesse sui file. L’esempio che fa Seigo è: “trova le fotografie di giraffe che mi ha inviato John via e-mail”. In una ricerca del genere è incluso il tipo di file (immagini), l’argomento del file (la giraffa), il canale di comunicazione (e-mail), la sorgente (John). Una ricerca del genere è molto macchinosa da realizzare con applicazioni tradizionali come Google Desktop Search, mentre un sistema basato sulle ontologie come Nepomuk permette di farla in modo molto naturale. Le ontologie sono memorizzate in Nepomuk come grafi, che sono una struttura molto inefficiente per le ricerche, per cui viene usato Strigi come motore di ricerca. Poiché è un progetto estremamente recente Nepomuk non è integrato in molte applicazioni, ma con il tempo dovrebbe diventare sempre più onnipresente.
Strigi
È un motore di indexing e di ricerca leggero e veloce. Potete considerarlo un equivalente open source si Google Desktop Search.
ThreadWeaver
ThreadWeaver è un supporto alla programmazione di applicazioni multi-thread che permette di sfruttare in modo semplice le CPU con architettura multi-core, che sono sempre più comuni. ThreadWeaver è basato sull’idea di suddividere le operazioni in job, descrivere le dipendenze tra i job e metterli in coda per l’esecuzione: il supporto li eseguirà nell’ordine ottimale sfruttando i core presenti (il cui numero è noto grazie a Solid). Sebbene sia un aspetto di KDE 4 squisitamente per i programmatori si traduce di fatto dal punto di vista dell’utente in una GUI più fluida e in programmi più rapidi. Insieme a ThreadWeaver Seigo descrive QtConcurrent, una libreria di Qt 4 che astrae l’implementazione dei thread dal sistema operativo sottostante, semplificando la programmazione per più sistemi operativi.
KWin
Come ho riportato in un post precedente KWin ora supporta gli effetti composite.
Plasma
Una delle innovazioni più attese di KDe 4 è Plasma, il motore che si occupa di rappresentare il desktop e i relativi widget come la barra delle applicazioni, l’orologio, il nuovo menu K, i widget che mostrano RSS o fanno interagire con Twitter e così via. Gli sviluppatori possono creare nuovi widget usando il linguaggio che preferiscono grazie a Kross.

La presentazione di Seigo è continua con un piccolo demo del funzionamento Dolphin, il nuovo file manager e il funzionamento di base di KDE su Mac.

Seigo ha anche descritto le nuove possibilità che si aprono per KDE grazie al supporto per più sistemi operativi: da un lato sicuramente attirare più utenti e sviluppatori grazie alla possibilità di sviluppare facilmente programmi non platform dependent, dall’altro quello ad esempio di standardizzare il supporto tecnico nelle aziende. Seigo spiega come sia possibile per una azienda scegliere di supportare Kontact come applicazione per le email, scegliere un server che supporti un qualunque protocollo aperto (non Exchange) e lasciare scelta agli utenti della piattaforma su cui utilizzarlo (Linux, Windows, BSD, Mac, OpenSolaris).

Infine viene presentata la comodità di utilizzare SVG per rappresentare la grafica in modo indipendente dalla risoluzione e una piccola demo di Marble, un componente simile a Google Earth, che in futuro userà il progetto Open Street Map per rappresentare le strade.

KDE 4 si presenta con un insieme di framework portabili e flessibili, sta ora agli sviluppatori e agli utenti trovare modi per farli interagire in modo utile. Il messaggio che ha cercato di veicolare Aaron Seigo è il secondo motto di KDE 4 (il primo è “Be free”): “the start of something amazing”. KDE 4 probabilmente non è ancora maturo, ma è la piattaforma su cui ci saranno, si spera, grandi sviluppi.

KDE4 e i bug di plasma

KDE4 è stato rilasciato. L’obiettivo più o meno tacito è quello di attirare sviluppatori e utenti sulla nuova piattaforma, oltre a quello di testare le nuove tecnologie (Plasma, Phono, Solid, Nepomuk, Strigi, Soprano, Decibel, Kross, ThreadWeaver). L’aspetto più evidente di KDE4, Plasma, è stato oggetto a un buon numero di segnalazioni di bug. In un suo post randomguy3, uno degli sviluppatori di KDE, ha indicato i bug segnalati più di frequente:

  • L’immagine di sfondo non sempre viene caricata. Il fix sarà rilasciato con la versione 4.0.1.
  • Gli handle delle applet non sempre sparisco quando il mouse viene spostato via dalla stessa. Il fix (”quasi perfetto”) è atteso per la versione 4.0.1.
  • Nessuna configurazione per la taskbar (randomguy3 commenta con “is coming”).
  • In alcuni casi il crash del desktop può portare a un salvataggio solo parziale della configurazione, lasciandolo senza barra degli strumenti.

Per quanto io ami KDE non posso onestamente dire che sia davvero pronto per chi voglia utilizzarlo come Desktop Environment permanente. Per chi sia meno inclinato al bleeding edge e preferisca la stabilità e la personabilizzabilità, suggerisco caldamente di attendere almeno KDE 4.1 e nel frattempo continuare tranquillamente a usare KDE 3.5.

E visto che tutti lo stanno facendo:

Usare il sistema di stampa di KDE in Firefox

Firefox icon by everaldo.comSu Linux Firefox utilizza una sua finestra di dialogo per la stampa delle pagine web, che può essere un po’ limitativa. È abbastanza facile però convicerlo a utilizzare il sistema di stampa di KDE. Per farlo eseguite queste operazioni:

  1. Nella barra degli indirizzi di Firefox digitate about:config e premete invio
  2. Cliccate con il tasto destro su una riga qualunque e scegliete New->String
  3. Nella prima finestra di dialogo che comparirà selezionate inserite print.printer_PostScript/default.print_command (esattamente come indicato qui, maiuscole e minuscole sono importanti!) e cliccate su Ok
  4. Nella seconda finestra di dialogo che apparirà inserite kprinter e cliccate su Ok
  5. Chiudete la linguetta di about:config

Adesso quando vorrete stampare qualcosa da Firefox nella vecchia finestra di dialogo selezionate PostScript/default e si avvierà il sistema di stampa di KDE, dove potrete usare normalmente la vostra stampante (o anche le stampanti virtuali che vi permettono di inviare la pagina come allegato pdf via mail, inviarla via fax e così via).

Effetti composite di KDE 4

Non sono un fanatico degli effetti composite portati alla ribalta da Compiz/Beryl/Compiz fusion, ma sono del parere che un po’ di “eye candy” per attirare utenti non guasti (purché siano consci che spesso questi effetti sono causa di impantanamenti del desktop environment).

Il gestore delle finestre di KDE 4, KWin, ha dei propri effetti grafici integrati, attivabili se il server X (AiGLX, XGL) supporta il composite. Ecco un video in attesa che KDE 4 venga rilasciato:

Weather Wallpaper

Leggendo il blog di nixternal ho scoperto questa giocattolo: weather-wallpaper, un programma scritto in python che cambia automaticamente lo sfondo del desktop per riflettere le condizioni metereologiche attuali. Le istruzioni sul suo sito sono molto chiare, e è possibile scaricare semplicemente il .deb per l’installazione oppure aggiungere il repository dell’autore al proprio sources.list per ricevere automaticamente gli aggiornamenti. Anche se il repository è indicato per Feisty non ho avuto alcun problema nell’installarlo su Kubuntu Gutsy Gibbon 7.10.

Funziona sia su gnome che su KDE, ma ha delle dipendenze da gtk, per cui potrebbe essere non desideratissimo su sistemi che usano KDE come desktop environment e non vogliono “sporcarlo” con applicazioni che non usino solo QT.

Dopo averlo installato e avviato lo si configura indicandogli l’indentificatore ICAO della stazione metereologica più vicina alla città di cui vi interessa il tempo (trovate la lista delle stazioni per l’Italia all’indirizzo http://weather.noaa.gov/cgi-bin/nsd_country_lookup.pl?country=Italy) e lo sfondo verrà automaticamente aggiornato ogni ora.

Ecco un esempio di weather-wallpaper in azione:

Weather wallpaper su Kubuntu 7.10 Gutsy Gibbon

weather-wallpaper: http://mundogeek.net/weather-wallpaper/

Kubuntu Tutorials Day

Keyboard icon by everaldo.comIl “Kubuntu tutorials day” si è tenuto con successo il 13 Dicembre. Per chi non ha potuto parteciparvi (come me :( ) sono disponibili i log all’indirizzo https://wiki.kubuntu.org/KubuntuTutorialsDay.

Il primo tutorial, tenuto dal deus ex machina di Kubuntu Jonathan Riddel, ha affrontato le basi della programmazione di KDE4 con python utilizzando PyKDE 4. Onestamente non ci si riesce a capire molto (e è completamente cinese se non si ha già una infarinatura di base di programmazione con Python e QT). Sostanzialmente jriddel ripercorre le slide che potete scaricare a questo indirizzo (pdf) in modo caotico a causa delle continue interruzioni. Un vero peccato.

Interessante per gli sviluppatori (o almeno per me) è stata la presentazione di Bazaar Version Control, un sistema per la gestione delle modifiche concorrenti a un progetto che supporta diversi workflow rispetto a quelli tradizionalmente supportati da CVS e Subversion, la pagina http://bazaar-vcs.org/Workflows dà una buona panoramica delle diverse modalità di funzionamento disponibili.

Anche la sessione di “Packaging 101″ e “Get your work into Kubuntu” sono state interessanti, oltre a mostrare uno spaccato della comunità che è alle basi di (K)Ubuntu e al suo processo di sviluppo.

La mia personalissima conclusione è che le sessioni su IRC vanno bene per “fare pubblicità”, ma non possono in alcun modo “formare” o insegnare qualcosa che rimanga. Per questo per chi è interessato agli argomenti trattati è bene far riferimento alle pagine del wiki o ai link suggeriti dai tutor delle sessioni:

Rilasciato KDE 4 RC2 “Coenig” - Installazione su Kubuntu

KDE 4 System Preferences icon by KDE Oxygen TeamKDE 4.0 RC2 “Coenig” è appena stato rilasciato.

KDE 4.0 è ormai molto più usabile e quasi tutti i progetti che lo compongono si stanno allineando per il rilascio, previsto per l’11 Gennaio 2008, l’unica mancanza notevole è KDEPIM, per cui su KDE4 sarà necessario utilizzare la versione per KDE3: KMail e i suoi compagni (Kontact, KOrganizer ecc.) potranno essere installati a posteriori quando saranno pronti.

Rimozione di KDE4 RC1

Se avete installato KDE4 RC1 come precedentemente ho riportato disinstallatelo con apt-get remove kdelibs5 kde4base-data kde4libs-data, cancellate /usr/share/xsessions/kde4.desktop e rimuovete il repository http://ppa.launchpad.net/tsimpson/ubuntu dal vostro /etc/apt/sources.list.

Installazione di KDE4 RC2

  1. Aggiungete il repository deb http://ppa.launchpad.net/kubuntu-members-kde4/ubuntu gutsy main al vostro /etc/apt/sources.list
  2. Installate kdebase-bin
  3. Installate kdebase-workspace kdebase-kde4 kdebase-runtime - questi pacchetti non sono autenticati e quindi riceverete un avviso durante la loro installazione
  4. I programmi di KDE4 dovrebbero comparire nel menu di KDE3, in alternativa al momento del login su kdm avrete l’opzione per avviare una sessione completa di KDE4

Se non volete avviare KDE4 in una sessione X potete installare xserver-xephyr e eseguire il comando Xephyr :1 & export DISPLAY=:1; xterm e nell’xterm che si avvierà eseguite startkde.

I pacchetti dovrebbero essere anche presto disponibili sui repository di gutsy e hardy backports.

Per l’installazione su Debian, Mandriva, openSUSE e Fedora fate riferimento a questa pagina di kde.org.

Se volete evitare l’installazione di software potete anche scaricare un CD Live basato su openSUSE con KDE RC2 da questa pagina.

Kubuntu Tutorials Day

Colgo l’occasione del post per ricordare che domani (oggi?) giovedì 13 Dicembre 2007 sul canale #kubuntu-devel sulla rete IRC Freenode dalle 15 UTC (le 16:00 in Italia) in poi gli sviluppatori di Kubuntu terranno una sessione dedicata ai programmatori (e non) che desiderano essere coinvolti nel lavoro su Kubuntu, che vogliono imparare a creare package .deb o a programmare per KDE4 in python usando i binding PyKDE4. Per I dettagli fate riferimento alla pagina ufficiale.

Se vi perdete l’incontro potrete trovare i log presso questa pagina.