Categorie
No Categoria

Espressioni regolari e alfabeto farfallino

Citando Wikipedia:

Il farfallino o alfabeto farfallino è un gioco linguistico per bambini. Si può intendere come una forma estremamente semplice di codice segreto e consiste nel raddoppiare ogni vocale con l’aggiunta di una f interposta: per esempio, a diventa afa, e diventa efe, e così via (quindi “ciao” diventa cifiafaofo). Viene detto “farfallino” perché la parola “farfalla” ha un suono simile a quello delle parole “codificate” seconda questo schema.

Un computer può aiutarci in maniera estremamente semplice per codificare il testo in questa maniera.

La regola, come abbiamo letto, è che dopo ogni vocale dobbiamo mettere una f e poi ancora la stessa vocale.

Ecco quindi il semplice codice PHP:

$farfallino = preg_replace('/([aeiou])/', '\1f\1', $testo);

Vediamo di spiegarlo: la sintassi della funzione preg_replace è:

preg_replace($espressione_regolare, $sostituzione, $stringa_su_cui_applicare);

L’espressione regolare, per regola, deve iniziare e finire con un delimitatore, io ho scelto la slash: /. Questa espressione prende, con [aeiou], ogni vocale, poi grazie alle parentesi tonde ogni vocale viene messa in un parametro numerico, per essere riutilizzata dopo.

Nella sostituzione, utilizzo questo parametro \1 per dire: “ok, metti qui la vocale che ho appena letto”. Quindi avrò: VOCALE f VOCALE, che tradotto in codice diventa appunto \1f\1.

Cifiafaofo afa tufuttifi!!!

Categorie
No Categoria

Altri problemini e risoluzioni per Ubuntu Jaunty

Alcuni altri problemini che mi si sono presentati su Ubuntu Jaunty.

Icona degli aggiornamenti mancante

A quanto pare è una cosa voluta!!! Leggo e traduco:

  • Quando ci sono aggiornamenti di sicurezza, il Gestore Aggiornamenti si aprirà e li mostrerà (oltre ad eventuali altri aggiornamenti disponibili) entro un giorno.
  • Quando ci sono aggiornamenti non di sicurezza, il Gestore Aggiornamenti si aprirà e li mostrerà una settimana dopo che è stato aperto l’ultima volta (sia nel caso in cui sia stato aperto manualmente che automaticamente, e a prescindere dal fatto che siano stati installati degli aggiornamenti, quella volta).
  • Quando non ci sono aggiornamenti disponibili, il Gestore Aggiornamenti non si aprirà automaticamente.

La soluzione per tornare al vecchio comportamento è dare in un terminale:

gconftool -s --type bool /apps/update-notifier/auto_launch false

Le nuove notifiche hanno un lampeggiamento in uscita (o in entrata)

Questo perché l’effetto dissolvimento è codato nel codice di libindicator, e quindi entra in conflitto con il relativo effetto di compiz.

Per risolvere, installare ccsm, avviarlo (Sistema -> Preferenze -> Gestore Configurazione CompizConfig), andare su Animazioni, Animazione di chiusura (poi ripetere i seguenti passi anche con Animazione di apertura), Andare sull’eventuale riga che cita Dissolvenza e il cui type comprenda Notification, modificare tale regola ed aggiungere alla fine questo:

& !(title=notify-osd)

Salvare e provare.

Categorie
No Categoria

Quale parte di NO non hai capito?

Mi è arrivata una simpatica mail da Windows Live merda:

Ti contattiamo in merito alle tue impostazioni delle preferenze relative ai servizi di comunicazione Windows Live e MSN.

Le impostazioni correnti non consentono a Microsoft di inviarti informazioni promozionali o inviti a sondaggi di opinione su Windows Live e MSN. Vorremmo avere la possibilità di comunicarti importanti aggiornamenti di prodotto.

NO! NO! NO! NO!
Ti ho detto di NO, ok? E allora perché credi che io abbia anche solo lontanamente intenzione di volere la tua spam?

NO! NO! NO! NO!

Quale parte di NO! non hai capito?!?!?!?!?

Ma soprattutto, perché ho un account Windows Live? :-/

Categorie
No Categoria

Blueproximity

Curiosando tra programmi improbabili, mi sono imbattuto in BlueProximity.

BlueProximity, fantastico!
BlueProximity, fantastico!

Questo programma permette di associare un dispositivo bluetooth (tipicamente il vostro cellulare), e non appena vi allontanate dal PC (la distanza e il tempo di lontananza sono configurabili) il computer verrà bloccato (facendo partire il classico screensaver con richiesta di password, mentre se vi avvicinate lo screensaver viene sbloccato automaticamente 🙂

Come installarlo?

sudo apt-get install blueproximity

Da questo momento verrà caricato all’avvio di Gnome, ma comunque per questa volta lo potete avviare a mano, lo trovate sotto Accessori -> BlueProximity.

Richiede di associare un dispositivo (click su Ricerca dispositivi), selezionate il vostro cell e fate click su Utilizza il dispositivo selezionato.

Successivamente dobbiamo trovare un canale disponibile: click su Ricerca canali sul dispositivo, verrete avvertiti del fatto che il vostro cellulare potrebbe richiedere (mille volte) conferma, ebbene, fatelo.

Quando la ricerca è terminata, scorrete la lista fino a trovare un canale utilizzabile, e poi impostatelo sotto Canale RFCOMM.

Per comodità sul vostro cellulare mettete il vostro PC tra i dispositivi autorizzati, onde evitare inutili conferme!

Nota: una guida fatta bene la trovate sul sito dello sviluppatore.

Ho provato ad utilizzarlo un po’ di volte e son davvero contento, occhio a non farvi fregare il cellulare da famigliari curiosoni!!! 😛

Categorie
No Categoria

Aggiungere smileys animati con Pidgin? Certo!

Il piccione parlante
Il piccione parlante

UPDATE 30/05/09: ho riscritto la patch da zero in seguito alle modifiche recenti nel ramo di sviluppo, gli effetti sono gli stessi ma il procedimento seguito diverso 🙂

Con pidgin, se cerco di aggiungere uno smiley ricevuto da un amico ai miei smileys, ho come effetto che viene salvato solo il primo frame, in pratica perde l’animazione.

Irritante.

Più irritante se penso che questo problema c’è da tempo immemore ma gli sviluppatori continuano a chiudere il ticket con stato: wontfix, perché il GdkPixBuf (non sviluppato da loro) non supporta il salvataggio in gif.

Bene, siccome mi ero rotto il cazzo di questa cosa, e un po’ per sfida, ho scritto una patch che utilizza un metodo non troppo pulito, ma che permette di aggiungere sto coso.

Come provarla?

Il metodo più semplice è quello di installare la versione di pidgin del mio repository, oppure se siete smanettoni dovrete applicare la patch al sorgente che dovete prendere dal ramo di sviluppo (attraverso monotone), applicarla, compilare ed installare pidgin! 🙂 [se avete bisogno di info a riguardo, contattatemi]

Per gli utenti di windows: la patch funziona (credo) anche per win, solo che non ve la posso compilare, dovrete farlo voi 😛

Problemi noti:

  • La patch permette di aggiungere uno smiley, non di salvarlo come immagine. Almeno per il momento. La nuova versione della patch (v0.6) permette anche di salvarli su file 🙂
  • L’ho testata un pochino, ma non è mai sufficiente: ho bisogno di feedback ragazzi, datevi da fare e provatela!
  • Utilizzerà un po’ più memoria. Beh a dire il vero si parla magari di una 50ina di kB con un migliaio di smileys visualizzati, ma sono pignolo 😛
  • L’ho testata solo sul ramo di sviluppo (attualmente la 2.6.0dev), se qualcuno vuole portarla al ramo stabile (2.5.5) è il benvenuto 🙂

Nerd area: come funziona funzionava (prima della v0.7)

Al momento della ricezione dello smiley, lo stream di dati viene salvato come file all’interno della cartella ~/.purple/remote_smiley_cache, con un nome univoco e nel formato originale inviato dal nostro contatto.

Viene creata una corrispondenza smiley_visualizzato<==>file_in_cache, in modo che al momento in cui faccio tasto destro sullo smiley e clicco su Aggiungi smiley personalizzato, lui non vada a chiedere al GdkPixBuf di salvarglielo, piuttosto gli chiedo di andare a leggere il contenuto del file in cache e di salvarlo tra gli smileys personalizzati.

Leggetevi la patch per maggiori info. Lo so, non è commentata, ma il codice di pidgin purtroppo non lo è mai, quindi ho semplicemente seguito lo stile attuale.

Categorie
No Categoria

Ubuntu Jaunty 9.04

Ebbene, eccomi qui, sulla mia fiammante Ubuntu 9.04.

Cominciamo a vedere qualche novità.

  • Nuova immagine di usplash all’avvio:

    jaunty-usplash
    L'immagine all'avvio
  • Nuovo sistema di notifica, invece di libnotify, si usa libindicator:

    Alessio che cerca di liberare spazio per instaLare jaunty :-P
    Alessio che cerca di liberare spazio per instaLare jaunty 😛
  • OpenOffice.org 3.0.1
  • Nuovo controllo per il volume, che si appoggia alle libindicator:

    jaunty-volume
    Il controllo del volume
  • Synaptic (il gestore di pacchetti) parecchio più rapido nella lettura dei pacchetti
  • Corretto il bug che affliggeva molti, della finestra di dialogo apri/salva, che appariva ridicolmente piccola e bisognava ingrandirla a mano, ogni volta;
  • Quando si cambiano gli sfondi del desktop, essi hanno un simpatico effetto di dissolvenza tra l’uno e l’altro, un tocco di stile.
  • Corretto un problema con la richiesta di password per i dati criptati, in cui la finestra non era in primo piano e incasinava tutto (capitava con Enigmail, o quando si firmavano files…)
  • Un generale aumento di prestazioni nella gestione del 3D, non so se grazie al nuovo driver Nvidia 180.44, fatto sta che cairo-dock è assolutamente reattivissimo, come anche compiz.

Ed ora passiamo ovviamente ai problemi che mi si sono presentati :-):

  • Quando ho provato ad aprire il primo terminale, mi appare questo bellissimo errore:

    “Errore nel creare il processo figlio in questo terminale”

    Dopo mille googlate, ho scoperto che il filesystem devpts non viene caricato al boot, e quindi bisogna caricarselo a mano, come spiegato qui.
    Consiglio di inserire tal comando nel file /etc/rc.local, in modo da non doverlo inserire ad ogni riavvio.
    (per chi dovesse arrivare qui tramite google, una conseguenza di questo bug è quest’altro messaggio: “fork di pty non riuscito”, che mi è comparso ad esempio in synaptic).

  • Crash in pidgin alla connessione, quando mi connetto ad un account con protocollo XMPP (tipo gmail/gtalk). È risolvibile leggendo qui, oppure installando gli ultimi pacchetti di pidgin e libxml2, aggiornati proprio in queste ore, che risolvono proprio questo bug.
  • Le impostazioni di compiz erano più o meno sballate, c’erano alcuni plugin che avevo attivato che ho dovuto riattivare tramite ccsm, tra cui: Animations addons, Opacity, Brightness and Saturation, il cubo, le finestre tremolanti, e mille altre cose.
  • I fonts si vedono più o meno diversi da prima, soprattutto con le applicazioni in QT, ma qtconfig ci può dare una mano in merito (anche se a me non ha risolto completamente).
  • Con Thunderbird 3 beta2 i caratteri sono particolarmente enormi, ma vabbé, è solo un pacchetto non ufficiale per ora, attenderò.
  • Il tanto sbandierato boot rapido non l’ho assolutamente visto, siamo completamente in linea con Intrepid, anzi Gnome è parecchio più lento a caricarsi, dopo il gdm-login.

In linea di massima sono ASSOLUTAMENTE contento di questa Jaunty, mi pare un lavoro molto ben fatto, e i problemi che ho avuto li ho corretti praticamente tutti, a differenza di quanto mi era capitato nelle versioni precedenti.
Non mi resta che augurarvi un buon upgrade!!! (D)

Categorie
No Categoria

Upgrading to jaunty

jaunty-upgrade

Vedremo al termine 🙂

Categorie
No Categoria

Complimenti!

Oserei fare i complimenti alla mia ragazza, che dopo ben 6 mesi e 22 giorni di rimandi, si è decisa (riuscendoci) a rifare il piercing al naso! 😛    😛

Complimenti!!!!!!! 😀

Categorie
No Categoria

Sogno o son desktop?!?

Senza parole
Senza parole
Categorie
No Categoria

Firefox, errore nssessionstore NS_ERROR_NOT_AVAILABLE

Da ormai 2 anni un problema mi affliggeva: firebug segnalava i seguenti errori, in ogni pagina:

[Exception… “Component is not available” nsresult: “0x80040111 (NS_ERROR_NOT_AVAILABLE)” location: “JS frame :: file:///usr/lib/firefox-3.0.7/components/nsSessionStore.js :: sss_saveState :: line 1909” data: no]

[Exception… “Illegal value” nsresult: “0x80070057 (NS_ERROR_ILLEGAL_VALUE)” location: “JS frame :: file:///usr/lib/firefox-3.0.7/components/nsSessionStore.js :: sss_saveState :: line 1909” data: no]

In pratica è dovuto al fatto che la sessione, in seguito ad uno dei tanti crash del browser, si era corrotta. Il problema è che non c’erano solo questi fastidiosi errori, ma la sessione si salvava SOLO se chiudevo regolarmente il browser, mentre se crashava addio tab aperte.

Ora, grazie ad un commento su un blog, ho finalmente trovato la soluzione, e creato una patch che risolve il problema.

Procedimento

Installiamo (se non ce l’abbiamo già) il programma patch:

sudo apt-get install patch

Eseguiamo in un terminale i seguenti comandi:

cd /usr/lib/firefox-3.0.7/components
wget http://polpoinodroidi.com/download/plugins/firefox-ns-error.patch -O- | sudo patch -p1

Nei comandi qui sopra, sostituite 3.0.7 con il numero di versione del vostro Firefox.

Riavviate firefox e sorridete alla vita. (D)

IMPORTANTE: dovete ripetere il procedimento ad ogni aggiornamento di firefox che farete (a meno che non correggano direttamente loro questo bug).