Il torero è indifendibile

StM - Sunday, 27 January 2008, 23:53 - diario, estensioni digitali

Fate conto che i post che dovrei pubblicare qui li stia pubblicando direttamente nella messaggistica istantanea di qualche sventurato di voi che non ha fatto in tempo a invisibilizzarsi non appena mi ha visto comparire online. Limited Edition Post del valore di svariate migliaia di caratteri, per voi completamente gratis. Wow. No? Voglio dire, wow.  Wow, *****. Oh.

Sicuramente sto incubando dei post bellissimi, ché il materiale si accumula. Però no, anche per stavolta non guardatemi sotto il sedere, ché non trovereste né uova né tantomeno pulcini. Ecco.

Migrare da Bloggers.it a Movable Type e Wordpress

StM - Sunday, 20 January 2008, 15:35 - how-tos, utilities

Oggi è possibile. Forse lo era anche ieri, ma nessuno sa se lo sarà anche domani. Fossi in voi approfitterei dell’occasione: esportate il vostro blog da Bloggers.it oggi, ed evitate il rischio che vi siano in futuro cambi di formato di export, o impossibilità dello stesso. Scusate, eh, signori di Bloggers.it, ma già come lettore sono molto scontento; figuriamoci poi se avessi un blog sulla vostra piattaforma: sarei viola di rabbia. Perciò ritengo un Diritto Inviolabile del Blogger fare uso di questo script e farvi ciao ciao con la manina. Senza rancore.

StM in associazione con Obi-Fran Kenobi.

Script

Senza tante parole, se già sapete di cosa si tratta, a voi lo script di conversione. Perché possiate scaricarlo è necessario che io mantenga l’estensione .txt, ma normalmente dovrebbe avere estensione .py.

Bloggers2MovableType.py

La data di revisione è contenuta all’interno. La licenza di utilizzo è quella di attribuzione.

A chi interessa

Questo post interessa chiunque sia in possesso di un blog sulla piattaforma bloggers.it (ora, dicono, blogdrops.com) e che voglia trasferire il contenuto del proprio blog (post, autori, categorie, commenti) su piattaforma Movable Type o Wordpress (su dominio proprio o sulla piattaforma gratuita wordpress.com). Qui si terrà conto solo dell’import su Wordpress in quanto non si conosce Movable Type.

Funzionamento in breve e requisiti

Il vostro backup da bloggers.it, contenuto in un set di file .xml, viene convertito in un file di testo costruito secondo il formato di export di Movable Type (che consiglio a chiunque voglia cimentarsi in attività del genere, in quanto completo e molto semplice). Per effettuare questa operazione avete bisogno, oltre che dello script, anche dell’interprete python per eseguirlo. Potete scaricare e installare tale interprete per il vostro sistema operativo da qui (se non l’avete già installato, e se usate linux potrebbe essere questo il caso):

http://www.python.org/download/

Se siete già pratici di programmazione e/o python, invocate una volta lo script senza parametri o date uno sguardo al codice per avere le istruzioni di utilizzo. Altrimenti continuate a leggere.

Procedura passo-passo: 1 - Esportazione da Bloggers.it

Sezione a cura di Obi-Fran Kenobi.

Salvare il backup dei vostri interventi è meccanicamente facile, il problema sta nel beccare quei dieci minuti in cui i server di bloggers rimangono up.

Prima di tutto, ovviamente, loggate nel pannello di amministrazione. Gli interventi che volete siano inclusi nel file di backup devono essere prima archiviati con lo script integrato. Controllate quindi che sulla colonna di sinistra non appaia il messaggio “E’ necessario archiviare”. In caso appaia, cliccatelo e attendete che bloggers archivi i vostri post. Se non l’avete mai fatto (e in questo caso sareste stati più saggi e intelligenti di me) occorreranno alcuni minuti.

Una volta finita l’archiviazione, dal pannello principale, cliccate su “Profilo utente“, nel riquadro in basso a sinistra chiamato “Modifica” (img 1).

img1

(img1)

Arriverete alla pagina “I miei dati personali“. Cliccate sull’ultima opzione, “Backup del blog” (img2).

img2

(img2)

Infine, sulla finestra che apparirà, cliccare “Scarica” e salvate il file .zip che il browser vi porgerà dove preferite (img3).

img3

(img3)

Procedura passo-passo: 2 - Download e configurazione dello script

Scaricate lo script dal link che trovate qui in giro, e apritelo con un editor di testo; in effetti al momento del download avrà probabilmente estensione .txt (per permettervi di scaricare il sorgente senza problemi). Noterete che il sorgente è già ricolmo di commenti (tutto ciò che segue un # viene ignorato dall’interprete al momento dell’esecuzione), ma ripeterò qui tutti i concetti rilevanti.

A voi interessa solo impostare alcune variabili, ma potete ignorare il resto del codice.

importa_chiusura_commenti=0

Questa variabile, se impostata a 1, fa in modo che lo script legga da Bloggers.it per quali post non sia più possibile inserire commenti, e riporti tale informazione su wordpress. Da come mi è stato spiegato, la procedura di archiviazione di bloggers comporta tra le altre cose la chiusura dei commenti per i post che vengono archiviati. Vista l’assurdità della cosa, io fossi in voi lascerei questa variabile a 0, ma impostatela a 1 se invece preferite così.

url_immagini_bloggers="http://www.bloggers.it/{nomeblog}/itcommenti/"
url_immagini_destinazione="http://www.nomedominio.boh/wp-content/uploads/imgbloggers/"

Le due variabili qua sopra effettuano nei post (e solo nei post, attualmente) la sostituzione di una particolare stringa con un’altra; tendenzialmente la cosa dovrebbe servirvi qualora intendiate caricare sul vostro dominio le immagini che al tempo furono caricate su bloggers.it, cosa quantomai consigliabile. Verificate che effettivamente su bloggers.it le immagini fossero nella sottocartella /itcommenti/, e mettete in url_immagini_destinazione la url completa di dove avete caricato le immagini. Ricordatevi comunque che l’output sarà un normale file di testo, su cui perciò potrete effettuare tutte le sostituzioni ed elaborazioni del caso. Se non intendete fare uso di questa sostituzione automatica, date alle due variabili il valore della stringa vuota (”") o due valori identici.

Date uno sguardo alla sezione Questioni di Encoding se scoprite/pensate di avere problemi di codifica caratteri, per qualche impostazione aggiuntiva.

Procedura passo-passo: 3 - Esecuzione dello script

A questo punto potreste cambiare l’estensione del file da .txt a .py, almeno per motivi filologici (altrimenti sostituite .txt ogni volta che scrivo .py nel seguito). L’invocazione pura e semplice dello script, per chi sa maneggiare python, consta del seguente comando:

$ [eventuale path]python Bloggers2MovableType.py bloggers.it/basedati/nomeblog/archivio > mt-export.txt

Dove “python” è un interprete python, “bloggers.it/basedati/nomeblog/archivio” è dove sono conservati tutti i file .xml dell’archivio di bloggers, e “mt-export.txt” è il vostro file di output. Se omettete la parte “> mt-export.txt”, il risultato dell’elaborazione vi verrà visualizzato a schermo. Per [eventuale path] s’intende il nome della cartella in cui si trova l’eseguibile dell’interprete python (su windows si chiama python.exe, altrove solo python), qualcosa tipo “\Python\bin” (verificate dove lo avete installato), necessario se non è nella vostra variabile PATH.

Esempio pratico
Supponiamo che:

  1. python sia installato in C:\Python25\, e quindi l’eseguibile dell’interprete sia C:\Python25\python.exe
  2. abbiate gli archivi in C:\bloggers.it\basedati\nomeblog\archivio
  3. abbiate lo script in C:\Bloggers2MovableType.py
  4. vogliate ottenere il file convertito in C:\export.txt

La sequenza di comandi diventa:

$ cd C:\
$ \Python25\python.exe Bloggers2MovableType.py \bloggers.it\basedati\nomeblog\archivio > export.txt

Ed è tutto.

L’elaborazione si interrompe se incappa in un qualsiasi errore non gestito: ve ne accorgete perché le ultime (uniche, se state scrivendo su file) righe di output a schermo parlano di eccezioni o qualcosa del genere. Se non vedete errori una volta terminata l’elaborazione (in fondo a tutto, se state visualizzando a schermo), allora questa è filata liscia.

Se non avete la minima idea di cosa sia e come funzioni questo python che vi ho fatto scaricare, abbiate pazienza e prima o poi scriverò qualche istruzione anche per voi.

Procedura passo-passo: 4 - Import in Wordpress

(Va da sé che vi consiglio fare una prova di importazione in un blog creato apposta ed eliminabile)

Accedete alla dashboard di Wordpress. Fate un controllo in Options -> Reading se la codifica caratteri sia UTF-8, e in caso contrario date una scorsa alla sezione Questioni di Encoding prima di procedere. Per l’import vero e proprio, andate in Manage -> Import, e cliccate su “Movable Type and TypePad”, caricate il file e seguite le istruzioni. Una nota, se vi è capitato di scrivere post con nomi utente diversi quando in realtà eravate sempre voi: avrete possibilità, nella pagina successiva, di mappare ciascuno di essi a utenti esistenti o di crearne di nuovi; in seguito potrete comunque eliminare gli utenti che non vi servono e specificare a Wordpress di attribuire i loro post ad un altro utente.

Terminato l’import non c’è più molto da dire: divertitevi col vostro nuovo vecchio blog su Wordpress!

Questioni di encoding

Esclusa la documentazione, un terzo del tempo di scrittura dello script è stato assorbito dalla gestione dei problemi di codifica caratteri. Tutti i file xml dell’export di Bloggers.it dichiarano di essere codificati in UTF-8; ma quelli più vecchi, se dati in pasto a un parser (=lettore e interprete) xml, generano errore a causa della presenza di caratteri non UTF-8 all’interno del file. Tali caratteri, in genere, sono le lettere accentate tanto amate da noi italiani. Lo script, in caso di errore durante la lettura di un file xml, fa un secondo tentativo, provando con un’altra codifica caratteri, attualmente la ISO-8859-1 (altrimenti detta Latin-1), che è quella che usa la stragrande maggioranza degli utenti italiani (corrispondente grossomodo a una qualche codifica di Windows che ha un nome diverso). Lo script restituisce come output un testo con codifica UTF-8, che è la codifica raccomandata per Wordpress. Se tutto va bene, non dovrete intervenire in queste lambiccate faccende.

Se qualcosa va male, ma non troppo, potreste dover modificare una o più di queste variabili nello script:

# codifica caratteri dichiarata nel file xml di export (vedere prima riga, in genere UTF-8)
declared_charset_encoding="UTF-8"

# codifica caratteri presumibilmente REALE di alcuni file xml di export (per archivi vecchi)
real_charset_encoding="ISO-8859-1"

# codifica caratteri desiderata per il file di output. UTF-8 e' il default per Wordpress,
# ed e' consigliato.
wanted_charset_encoding="UTF-8"

Ovviamente speriamo di no.

Assistenza e suggerimenti

Questo è il mio primo script in python, perciò può non essere perfetto: saranno molto graditi suggerimenti da programmatori esperti del linguaggio. Attualmente la gestione degli errori è molto limitata, quindi in caso di errori vi vedrete apparire messaggi “strani” (per chi non è programmatore) piuttosto che spiegazioni stilate di mio pugno. Il senso in genere è comprensibile ugualmente, altrimenti (sigh) chiedete assistenza qui nei commenti riportando il messaggio di errore per intero (se non è già presente).

Di una cosa sola vi prego: non fate domande prima di aver letto e cercato di comprendere tutto il post. Io ho impiegato del tempo a scriverlo proprio per evitare di fare assistenza permanente, che per esperienza so essere in grado di fagocitare porzioni rilevanti della vita di un essere umano. Le vostre domande potranno comunque contribuire a migliorare lo script o la documentazione, quindi non vi sto vietando di farne :D

Potrebbe essre che prima o poi modificheranno qualcosa nel formato di export di Bloggers.it (abitudine diffusa nel mondo informatico, specie tra i perdenti o coloro che non stanno vincendo quanto vorrebbero). Quando e se succederà, spero avrò tempo per dedicarmi alle modifiche, o in caso contrario che ci sia qualcuno che possa occuparsene.

Problemi & Soluzioni

Problema potenziale: per via del formato di export di Movable Type, se nel vostro blog esiste una riga costituita solo dalla stringa “—–” o “——-” (esattamente all’inizio della riga), potrebbe esserci una perdita di dati durante il trasferimento (quelle stringhe vengono interpretate come fine sezione). Sto pensando se me ne devo preoccupare o no, visto che da quel che ho visto è probabile che il problema si verifichi solo nei commenti.

Problema: mi dice “xml.parsers.expat.ExpatError: no element found: line 1, column 0″. Adesso ti picchio. Soluzione: nella cartella contenente gli archivi xml ci dev’essere qualche file intruso - ad esempio è capitato che vi fossero file di lunghezza nulla (0 byte). Eliminate quei file e riprovate.

Versioni

20080202 - impostato ISO-8859-1 come charset predefinito (e io che mi credevo che ISO-8859-15 andasse bene).

20080210 - ora lo script legge solo i file .xml contenuti nella cartella (visto che in alcuni sistemi operativi o usando alcuni programmi vengono creati in giro file che non c’entrano niente).

Updates

StM - Wednesday, 16 January 2008, 1:58 - diario, estensioni digitali

Quarantanovesimo posto su google per la stringa di ricerca “filmati porno”, che è pure la keyword più usata. E pur con questo modesto risultato, il post che ne parlava è al secondo posto negli ultimi trenta giorni delle pagine di entrata, dopo la home. Temo la soppianterà. Ovviamente condivido l’opinione del Mikk, che stigmatizzava la tenacia di chi, su google, cercasse “filmati porno”.

La ricerca di un altro lavoro si è un po’ rammollita (lo dico qui anche per rassicurare chi mi legge e non mi dice che mi legge). Diciamo non disdegnerei un colloquio ogni tanto, ma se tutto ciò che mi sanno dire quando mi cercano è “non so per cosa la stiano cercando”, “non so di cosa si occupi la nostra azienda, la posso rimandare al sito”, e “ah, quindi non è interessato ad un colloquio”, signori miei, faccio a meno. Sto anche rivalutando un po’ la zonistica della eventuale ricerca, riconciliandomi anche con il capoluogo di regione, ma molte motivazioni che spingevano al cambio sono venute meno.

Per certe altre cose sono perplesso. Ma anche affascinato dalla varietà che c’è nel mondo, e che mi sono colpevolmente perso fino al ventisettesimo anno inoltrato. Santa polenta. Io devo aver scritto in fronte “CAVIA”, con sottotitolo “pazienza infrangibile”. Tiratemi un calcio “in Olanda” e io mi muoverò pacatamente verso un angolino per dare sfogo a un accenno di smorfia, senza comunque ritenervi responsabili di alcunché. Giuro. Sono convinto che sarebbe così. Dev’essere parte del mio irresistibile fascino, un po’ come la vista a raggi X di Superman o i cannelloni di Nonna Odilia. Ok, magari aiuta se prima di farlo mi avrete dato un’overdose di coccole che nemmeno immaginavo potesse essere messa in atto (da persone altre-che-me, ovviamente u_u); però voi provate lo stesso, magari evito di scegliere per voi il dissanguamento e opto per lo spezzamento del collo.

Tante care cose (e prima o poi ci rivedremo davvero).

Amitié

StM - Sunday, 6 January 2008, 17:04 - fotografismi, nosce te ipsum, pindaro

Non li vedi e non li senti per mesi, anni, generazioni, ma nel tuo cuore continuano a soggiornare nella stanza degli amici. Come Pao, che si fa vedere solo d’inverno e neanche tutti gli anni, ma che quando mi viene a trovare è come se ci fossimo lasciati soltanto il giorno prima. Buon vecchio Pao.

Il mio amico Pao

La visita di Pao mi ha fatto pensare se io, sotto sotto, sia più un porto o più un vascello. Perché ci sono persone apparentemente senza radici, che girano sempre, che hanno “molte case”, che hanno amici ovunque; questi sono i vascelli. E poi ci sono le persone che si sono trovate un posto, e stanno lì, sai dove trovarle, sai che ci sono, e magari se sei un vascello hai degli amici che, appunto, sono porti. E mentre pensavo a queste metafore mi sono detto, opperbacco, ma se sei un porto come li conosci gli altri porti? Forse che devi sempre solo aspettare che un vascello ormeggi dalle tue parti? No, mi direte, la metafora qui fa acqua, si deve parlare di radici e quindi di una foresta, non più di porti. Vero. Ma non di rado la sensazione mia è stata proprio di essere un solingo porticciolo in disuso in una città disabitata, a cui per pura fortuna hanno ormeggiato a volte fragili barchette a vela per trovare pace o ripararsi da una tempesta; rare, intense e straordinarie, ma rare, frazioni di un attimo.

Un porticciolo così, diciamolo, non se ne accorge nessuno se un giorno incurva le assi del suo molo e si reinventa vascello; e così spesso ho fatto. Ma ondeggio, non mi risolvo. Ho timore che gradirei piantare una maestosa quercia su una novella arca di Noé, e dire che sì, ho radici profonde, ma me le porto in giro per il mondo insieme a me; e se proprio volessi strafare, potrei cercare Laputa lassù, da qualche parte (visto che, lo sappiamo, nelle videoteche non si trova più).

SUVvìa, è così complicato?

StM - Tuesday, 1 January 2008, 17:09 - belinate

Ci sono un garage e un cancello. O un cancello e un garage, se guardate da fuori. Non c’è alcun cartello di divieto di sosta, perché a noi dispiace vietare, ma il buon senso parrebbe essere gratis. Davanti davanti comunque non ci parcheggiano mai, segno che la vaga esigenza di avere via libera è evidente e il pudore fa la sua parte; salvo in caso di terribili fiere (quelle con le bancarelle, non quelle coi dentoni), che se non parcheggi lì parcheggi due strade statali più in là, al che perdoniamo.

Ogni tanto però ci parcheggiano davanti a mezzo. Cagano il mezzo lì, nel senso di mezzo didietro dell’autoveicolo, che sporge e occlude l’uscita. E non capisci perché. Guardi davanti all’occludente, e spazio libero ne trovi; controlli se la targa non indirizzi a qualche istituzione incaricata di elargire castighi divini, e pare di no; ti chiedi se a questo punto non era la stesso parcheggiare davanti in toto, e non sai rispondere che affermativamente. Un’ipotesi molto accreditata è che semplicemente questi siano abituati a girare con l’Ape, e quando invece girano con il panfilo su ruote non sanno più prendere le misure.

Quando la cosa è una tantum, pazienza; se proprio devi uscire rompi le balle al ristorante davanti, ché sicuramente sarà stato uno dei facoltosi avventori a espletare questa fastidiosa funzione fisiologica con l’imbarcazione in oggetto. Ma qui sta diventando sistematica, sempre lo stesso capannone gommato; perciò pensavo di comunicare a chiunquesia che anche noi s’ha qualche, rara ma imprescindibile, esigenza di uscita motorizzata. Me ne sono sortito con questo messaggio da lasciare sotto il tergicristallo, eventualmente bisognoso di qualche limatina: “Non disdegneremmo la cortesia da parte sua di spiaggiare il cetaceo un poco più avanti, onde limitare la sottrazione del nostro umile spazio vitale”.

Non che abbia avuto precedenti promettenti, quanto a docenza sulle modalità di parcheggio. Certe minchiaheads che ve le raccomando. Di quelle che com’è, come non è, dovrebbero viaggiare costantemente con le fiancate rigate (hint: qualcuno inventi gli adesivi attacca-stacca con le righe disegnate, per preservare le fiancate delle auto degli stronzi dalla giusta punizione). Ma sono fiducioso.