Mercoledi, 19 Novembre 2008 

Cinelerra e Rpmfusion

Data pubblicazione: 07 Novembre 2008
Categorie: GNU/Linux tools
Tags: , , ,

RPM Fusion è una fresca iniziativa del gruppo che gestisce l’aggiornamento dei pacchetti software di Fedora e Red Hat Enterprise Linux. Di fatto, è un merging, cioè proprio una fusione, dei packages repository più importanti del sistema di updating di questi due sistemi operativi: livna, freshrpms e dribble.

L’installazione dei repository rpmfusion può creare problemi di dipendenze con Cinelerra, se questo pacchetto è stato installato dal repository kwizart. Questo perchè tale pacchetto si ancora ad una dipendenza della libx264.so.58 che viene superata dalla nuova versione liberata da rpmfusion, che è la libx264.so.60. Questo meccanismo di dipendenza blocca l’updating dei pacchetti correlati alla libreria, che sono praticamente tutti i coltellini svizzeri del managing audio/video: mplayer, mencoder, ffmpeg, ecc, di fatto interrompendo il processo di aggiornamento per problemi di dipendenze.

Per aggirare il problema, potete provare a seguire questa procedura, di cui chiaramente non mi assumo alcuna responsabilità nel risultato, responsabilità che resta in toto a chi la metterà in pratica. Nella mia sala macchine ha funzionato, e se avete il medesimo problema, ve la comunico sperando che possa funzionare anche per voi. Vi consiglio caldamente di effettuare un backup preventivo di tutti i files coinvolti nell’operazione. Diciamo che questa è una procedura rilasciata in GPL 2.0……

Questa procedura è eventualmente da sperimentare se e solo se il vostro sistema ha tutte queste caratteristiche:

  • State usando Fedora 9.
  • Avete installato Cinelerra via kwizart
  • Avete un’architettura hardware a 32 bit
  • Avete installato i repository Rpmfusion
  • Avete problemi di updating a seguito dell’installazione del repository Rpmfusion per conflitto di dipendenze con la libreria libx264.so.58

Se anche solo una tra esse non rispecchia la configurazione del vostro sistema, è sconsigliabile seguire questa procedura. Oppure, prendete spunto da essa per effettuare le operazioni opportune nel vostro sistema.

Prima di tutto, effettuate una copia di backup della libreria libx264.so.58 nel vostro sistema. La libreria è nella directory /usr/lib.

Poi, rimuovete l’installazione di Cinelerra con il comando

yum remove cinelerra

Successivamente, eseguite il normale updating del sistema con il classico comando

yum update

Per reinstallare Cinelerra, non potete più usare la versione rilasciata da kwizart, perchè entra in conflitto con i nuovi pacchetti installati ed aggiornati da Rpmfusion. Per cui, scaricate direttamente nel vostro sistema il pacchetto rpm rilasciato da freshrpms per l’architettura hardware i386, prelevandolo dal seguente collegamento:

http://rpmfind.net/linux/RPM/…/cinelerra-2.1-0.14.20080214.fc8.i386.html

Non è importante che il pacchetto sia marcato per fedora 8.

Una volta scaricato il pacchetto, accedete alla vostra macchina come utente root ed installate il pacchetto con il seguente comando:

rpm -ivH --nodeps cinelerra-2.1-0.14.20080214.fc8.i386.rpm

L’opzione –nodeps forza l’installazione del pacchetto software a prescindere dalle dipendenze, superando l’inconveniente della libx264.so.58.

Poi, create un link simbolico della libx264.so.58 all’ultima versione di libx264.so presente nella vostra /usr/lib, oppure ripristinate la libx264.so.58 all’interno della /usr/lib prelevandola dal backup che avete fatto precedentemente; scegliete quello che è meglio per voi, purchè tale scelta ripristini in qualche modo una libx264.so.58 nella /usr/lib.

Questa procedura non imposta automaticamente, a differenza di quella via kwizart, il parametro shmmax del kernel a 0×7fffffff; dato che Cinelerra richiede questa impostazione del kernel per poter funzionare al meglio, lo faremo noi direttamente inserendo le seguenti linee di codice nel file /etc/sysctl.conf:

# Espando memoria shared per cinelerra
kernel.shmmax = 0x7fffffff

Naturalmente, questa impostazione verrà attivata a partire dal successivo reboot.

Il gioco è fatto. I repository sono aggiornati, e Cinelerra dovrebbe essere operativo e funzionante con la nuova installazione.

Buona creazione con Cinelerra!

Post correlati: Ah, Cinelerra…

Ah, Cinelerra…

Data pubblicazione: 17 Settembre 2008
Categorie: GNU/Linux tools
Tags: ,

Cinelerra è un editor video non lineare multitraccia.

Nel panorama delle applicazioni a disposizione nel mondo GNU/Linux per la categoria dell’editing video, dopo svariate prove su svariati applicativi proposti dalla community, alla fine Cinelerra resta il migliore che abbia testato, e quello che uso abitualmente, anche in questo momento, per il montaggio video.

La complessità dell’interfaccia grafica è un ostacolo solo apparente alla funzionalità dell’applicativo: basta seguire uno tra i molti tutorial disponibili su Internet, o leggersi con un filino di calma la documentazione ufficiale del progetto, per iniziare immediatamente ad essere operativi e creativi.

Come qualsiasi applicazione, Cinelerra non è esente da bug. Uno dei bug più fastidiosi nella versione 2.1 dell’applicativo, che si verifica durante il caricamento di un progetto soprattutto quando è di una certa dimensione, è un apparentemente inspiegabile inchiodamento; Cinelerra si pianta, non risponde ad alcun comando, e l’unica alternativa diventa il killing da terminale, perchè i layer dei desktop environment preposti allo scopo non intercettano il click del mouse inefficace sul tasto di chiusura della finestra.

Dopo aver provato svariate azioni, tra cui la cancellazione degli indici di lavoro, alla fine esiste un modo per ritornare ad utilizzare Cinelerra con il progetto che lo importuna… un modo che non funziona proprio il 100% delle volte, ma un buon 80% si.

Si tratta di utilizzare Cinelerra all’interno del debugger gdb.

Molto semplicemente, si apre un terminale e si digita:

gdb cinelerra

Il debugger caricherà l’applicativo, che probabilmente non sarà compilato con i simboli a bordo, ma questo non è importante. Alla fine del caricamento, premere semplicemente r seguito da ENTER, e seguire le indicazioni del debugger fino al caricamento dell’applicazione.

Quando Cinelerra viene caricato in questo modo, riesce quasi sempre a portare a termine correttamente anche il caricamento del progetto che precedentemente lo inchiodava. Una volta arrivati qui, si consiglia caldamente di proseguire il lavoro di editing anche se si sta agendo controllati dal debugger, e dunque potenzialmente più lenti, perchè salvando il progetto e tentando di ricaricarlo in modalità normale, si ritorna alla condizione di stallo da cui si è partiti.

Raffaella Traniello ha trovato una soluzione ancora più elegante a questo bug, che finora ha sempre funzionato nella mia esperienza di lavoro; una soluzione che potete trovare evidenziata e spiegata tra i commenti a questo post. Ringrazio Raffaella  per l’aiuto che mi ha dato, e per il suo contributo a beneficio della comunità di utilizzatori di Cinelerra.

Eventuali altri contributi, anche a beneficio di tutti gli utilizzatori di Cinelerra, sono sempre bene accetti tra i commenti a questo post; sarò felice, naturalmente, anche di leggere di qualcuno che ha scoperto perchè ciò accade, in modo da impedirne il verificarsi alla fonte.

Post correlati: Cinelerra e Rpmfusion

Cambiare randomicamente gli sfondi del desktop GNOME

Data pubblicazione: 11 Settembre 2008
Categorie: Gnome, PHP
Tags: , , ,

Il desktop environment Gnome, almeno fino alla versione attualmente in uso nella mia sala macchine, cioè la 2.22.3, non consente, passando dalle finestre di settings del proprio ambiente di lavoro, la possibilità di cambiare ciclicamente, ed in maniera randomica, le immagini di sfondo del proprio desktop.

Questa carenza, del resto non così grave, è comunque aggirabile e risolvibile in una quantità pressochè illimitata di modi, grazie alla flessibilità del sistema GNU/Linux, alla disponibilità di copiosi strumenti di sviluppo, e ai cancelli software che Gnome mette a disposizione per dialogare in tempo reale con il suo environment.

Ecco quindi un modo molto semplice per inserire nel sistema questa funzionalità, e gestirla in modo altamente parametrico attraverso uno script PHP progettato ad hoc per lo scopo.

Lo script è testato e funzionante, con alcune piccole variazioni non importanti, in un sistema Gnome su piattaforma Fedora.

Naturalmente, chi non ha una conoscenza del linguaggio PHP può comunque fare uso del codice che tra poco presenterò, ed anche, con attenzione, intervenire nella sezione di configurazione dei parametri dello script, in modo da customizzare il risultato finale in maniera sempre più vicina alle sue esigenze.

Lo script PHP che gestisce il cambio randomico e ciclico degli sfondi del desktop è il seguente ( da salvare nel proprio sistema con estensione php, togliendo quella txt ):

clicca qui per visualizzare lo script ( verrà aperto in una nuova finestra )

La sezione VARIABILI GENERALI DI FUNZIONAMENTO contiene i parametri di funzionamento dello script.

L’array $aDir contiene la lista delle directory nel sistema locale da cui prelevare gli sfondi, e contiene due chiavi: uri è sostanzialmente il path da cui prelevare le immagini di sfondo, e scan è un importante parametro, perchè consente di prelevare le immagini ricorsivamente in tutte le sottodirectory dell’uri indicato. Se impostato a NORMAL, vengono prelevate solo le immagini nell’uri; se impostato a RECURSIVE, vengono prelevate tutte le immagini contenute nell’uri e nelle sue sottodirectory. Parametro utile, per esempio, per prelevare tutti gli sfondi nella directory del desktop Gnome adibita allo scopo, cioè /usr/share/wallpapers. Impostare in $aDir tutte le directory da cui si intende prelevare gli sfondi, sostituendo, se necessario, gli esempi che trovate, soprattutto quello puramente esemplificativo /my/dir/.

L’array $aExtension contiene le estensioni che devono avere i files per essere considerati immagini di sfondo. Il suo contenuto è parlante, aggiungere, se necessario, altre estensioni.

L’array $aFilter indica quali nomi di file senza estensione devono essere filtrati durante l’identificazione dei file da usare come sfondo. Cioè a dire, ogni elemento è un nome di file che, se incontrato durante lo scanning, sarà saltato senza essere considerato sfondo valido. Usare questo filtro per togliere le immagini che non si desidera inserire nel set di quelle da utilizzare. Le impostazioni indicate qui sono state inserite perchè il desktop Gnome mette a disposizione wallpaper di differenti dimensioni per lo stesso contenuto, che se non venissero in qualche modo filtrate, comparirebbero ovviamente tutte quante, pur avendo il medesimo contenuto, nella lista degli sfondi validi. Ma naturalmente, in certe directory personali si può avere la necessità di non prendere tutte le immagini ivi contenute come sfondo per il proprio desktop, e in quel caso, basta inserire il nome di file, senza estensione in questo array.

La variabile $iTimeKeep indica ogni quanti secondi il desktop Gnome cambierà inserendo una nuova immagine. Anche qui, inserire un valore sensato è una regola di indubbio valore: nell’esempio, il tempo impostato è di 30 minuti ( 1800 secondi ).

Una volta salvato lo script nel proprio sistema, occorre innestare la sua esecuzione nel sistema Gnome, e a tal proposito, seguire i passi indicati:

  • dare i permessi di esecuzione allo script.
  • Accedere in Sistema->Preferenze->Personale->Sessioni
  • Nella lista dei programmi d’avvio presentata, aggiungere una nuova entry così composta:
    • Nome : quello che volete
    • Comando : il nome dello script salvato, completo di path assoluto
    • Descrizione : quella che volete
  • chiudere la finestra, ed il gioco è fatto. Al successivo avvio di Gnome, gli sfondi cominceranno a cambiare in accordo alle vostre impostazioni.

Due parole finali sulla modalità di interazione con il desktop Gnome: il comando che fisicamente cambia il desktop del vostro ambiente di lavoro è:

gconftool-2 -t string -s /desktop/gnome/background/picture_filename [path_del_nuovo_sfondo]

gconftool-2 è sostanzialmente una utility che consente di impostare molti dei parametri di funzionamento del desktop Gnome (font, impostazioni del sound mixer, dimensione e posizione delle taskbar, etc) direttamente via shell; tra tali parametri, compare anche quello relativo all’immagine di sfondo da utilizzare, e attraverso questo comando possiamo gestirla in un modo più “creativo” e divertente.

Post correlati: Nessun post correlato

Visualizzare i commenti di un post Wordpress dal più recente

Data pubblicazione: 26 Giugno 2008
Categorie: PHP
Tags: , ,

Il mio primo post in assoluto, in questo laboratorio informatico di ricerca e sviuppo, è sostanzialmente inerente ad un piccolo codice PHP da inserire, se si desidera, nel theme template del proprio blog Wordpress. Il suo scopo è visualizzare i commenti dei post ordinati temporalmente dal più recente al più vecchio. Cioè a dire, l’ultimo commento inserito è visualizzato per primo.

Per default, infatti, Wordpress visualizza i commenti ordinati temporalmente dal primo inserito in poi, con il risultato che gli ultimi commenti di un post, soprattutto quando superano un certo numero, possono essere visualizzati solo dopo uno scrolling chilometrico della pagina del post.

Ordinare in maniera inversa la visualizzazione permette invece di leggere istantaneamente, perchè posti al top, i commenti inseriti per ultimi. Un qualcosa che può risultare comodo.

Per ottenere questo risultato, possiamo agire su uno dei nostri file relativi al tema scelto per la visualizzazione senza modificare il core kernel di Wordpress, in modo da svincolarci da qualsiasi aggiornamento e conservare il pieno controllo sulla modifica effettuata.

Ecco come fare:

  • editiamo il file comments.php del nostro tema Wordpress utilizzato.
  • localizziamo il posto esatto dove inserire il nostro codice, che è quello immediatamente prima del ciclo foreach di visualizzazione dei commenti di un post, cioè:
    1. <?php foreach ($comments as $comment) : ?>
  • inseriamo subito prima del codice sopra indicato il seguente codice PHP:
    1. <?php
    2. //
    3. // Ordino i commenti in ordine temporale dal piu’ giovane al piu’ vecchio
    4. //
    5. foreach ($comments as $key => $comment)
    6.            $data_gmt[$key] = $comment->comment_date_gmt;
    7. //
    8. array_multisort($data_gmt, SORT_DESC, SORT_STRING, $comments);
    9. ?>
  • Il gioco è fatto! Da questo momento in poi, i commenti di tutti i post verranno visualizzati ordinati dal più recente e progressivamente a scendere verso il più vecchio.

Due parole finali sul semplice trucco utilizzato: i commenti sono sostanzialmente caricati in Wordpress come un array di righe ( $comments ), in cui ogni riga è un commento ( $comment ); un commento ha a corredo diversi campi che gli sono peculiari, e tra essi c’è quello che ben si presta al nostro scopo: il campo comment_date_gmt. Di fatto, questo campo è un datetime nella forma YYYYMMDD HH:MM:SS; vedremo in un successivo post perchè questa sintassi si presta meravigliosamente agli ordinamenti temporali.

La funzione array_multisort è una funzione PHP davvero potente che ordina array multipli o multi-dimensionali, per la quale invito a leggere la pagina di manuale relativa sul sito PHP. Proprio da questa pagina ho tratto spunto per la creazione di questo piccolo codice.

Post correlati: Nessun post correlato
Chiudi
Invia per E-mail