altre destinazioni

ultimi post

ultimi commenti

tag principali

categorie

powered by

  • WPFrontman + WP

friends

copyright

  • © 2004-2011
    Ludovico Magnocavallo
    tutti i diritti riservati

Personal information store

6 febbraio 2013

7 commenti

Da un po’ di tempo sentivo l’esigenza di avere uno spazio personale dove annotare appunti e idee sui progetti in corso (di programmazione, ma non solo), qualcosa di semplice, leggero, che non richiedesse installazioni particolari, e ovviamente sincronizzato su tutte le macchine che uso.

Il formato ideale per strumenti di questo tipo è ovviamente quello dei cari vecchi wiki, e in particolare della loro versione ultraleggera, dinamica, monopagina, che può girare senza nessun tipo di installazione: TiddlyWiki. Ci avevo giocato qualche anno fa, l’avevo trovato elegante e utile ma un po’ ruvido nell’utilizzo pratico, e soprattutto problematico da tenere sincronizzato o installare lato server, e me ne ero quindi dimenticato.

Curioso di vedere se in questi anni era evoluto e se potesse quindi servirmi come information store personale, l’ho scaricato e ci ho giocato per un po’ di tempo. Il risultato, dopo un po’ di smanettamento, è quasi perfetto per quello che mi serve:

  • in accoppiata con Dropbox i problemi di sincronizzazione sono risolti
  • la formattazione del testo tipica dei wiki, un po’ scomoda secondo me, può essere abbastanza facilmente sostituita da Markdown
  • le nuove versioni sono iper-estensibili, fantastico ad esempio l’utilizzo di schede contrassegnate di sistema con testo e codice, per implementare plugin

Se siete alla ricerca di un sistema agile e leggero per organizzare pensieri e appunti dategli un’occhiata, anzi se volete vi clono il mio con già installato Markdown e il paio di configurazioni che servono, così vi evito quel po’ di ricerche per capire come si fa (gli spazi wiki sono spesso parecchio disordinati — ironico per uno strumento che si propone di organizzare l’informazione).

WP rant #1 - tassonomie

13 luglio 2011

13 commenti

Chi ha seguito un po’ le mie evoluzioni in questi ultimi anni, sa che con WP ho da tempo in corso una specie di lotta personale: è il più diffuso sistema di blogging, ha un’infinità di funzioni e tantissimi plugin, l’interfaccia è ragionevolmente comoda da usare, ma il codice è un esempio straordinario di come non si dovrebbe programmare, sia dal punto dell’architettura (quale architettura?), del disegno dei dati, degli algoritmi (quali algoritmi?), che del codice vero e proprio. In breve, ogni volta che ci metto le mani mi viene il rigetto, e ogni volta riscrivo un pezzo grande (il frontend, prima in PHP e ora in Django) o piccolo (varie funzionalità del backend).

Questa volta è il turno delle categorie, con cui sto lottando da qualche giorno. Per preservare la mia (scarsa) sanità mentale ho deciso di sfogarmi qui, in modo da a) avere magari qualche feedback, anche ne se immagino già il tono (da “ma chi te lo fa fare? Sei rimbecillito?” a “WP è una figata sei tu che non capisci una fava” – possibile), e b) inaugurare una “galleria degli orrori”, sempre che non mi stufi prima e decida di scrivere un sistema di blogging da zero. Quei due o tre lettori interessati possono continuare dopo il salto.

questo post continua, leggi il resto

Lightpress, reboot

23 giugno 2011

4 commenti

Qualcuno degli ormai rari lettori di questo blog forse ricorderà Lightpress, il frontend per WordPress che avevo sviluppato in Blogo, e accasato in seguito da Textdrive che lo aveva adottato tra le applicazioni sponsorizzate. Dopo parecchio lavoro e un po’ di (virtuali) soddisfazioni, circa cinque anni fa aveo deciso di interromperne lo sviluppo: in parte perchè pur essendo un progetto interessante quasi solo per blog commerciali, la licenza GPL faceva sì che in pratica lavorassi come consulente non remunerato (i nanopublisher non sono famosi in genere per avere un senso di equità sociale particolarmente sviluppato); e in parte perchè i miei interessi si erano nel frattempo spostati verso altre direzioni, tra cui Blogbabel.

Nel retrocranio però l’esperienza di Lightpress ha continuato a fermentare, e ogni volta che pensavo a mettere su un blog o mettevo le mani su quello di qualche parente o amico, mi rendevo conto che l’esigenza di tanti anni fa esiste ancora: WordPress ha una architettura vecchia, che non era particolarmente brillante neppure alle origini ma con il tempo e le stratificazioni successive è diventata davvero pessima, generando un sistema ipercomplesso, pieno di ridondanza, in cui è complicato mettere le mani (mai provato a tracciare l’origine di un dato attraverso decine di funzioni e include?) e che non usa nessuna delle tecniche di sviluppo di applicazioni web che sono ormai di uso comune come un sistema di template, codice a oggetti o perlomeno la separazione tra dati e viste logiche, un ORM (non tiratemi fuori l’aborto che è wpdb, tra l’altro utilizzato solo per alcune cose), ecc. ecc.

Così qualche tempo fa fa ho iniziato un po’ per gioco a buttare giù un frontend per WordPress in Django, riprendendo alcune delle idee di Lightpress e aggiungendone molte altre, e soprattutto cercando il più possibile di seguire la filosofia di progettazione e sviluppo delle applicazioni Python e Django. Ci è voluto molto più di quanto pensassi, un po’ per gli inevitabili mismatch tra il disegno della base dati di WordPress multiblog (agghiacciante come quasi tutto il resto) e il layer ORM di Django, un po’ per la quantità di funzionalità di cui tenere conto (commenti threaded o meno, categorie e pagine mono o multilivello, interazione diversa con utenti WP o anonimi, ecc.), ma dopo quasi sei mesi il primo prototipo è pronto, e sta servendo i blog che sono sul mio server, tra cui questo che state leggendo.

questo post continua, leggi il resto

Yes, I am a data geek / 3

26 maggio 2010

3 commenti

Un piccolo intermezzo in cui vi racconto come far inserire a MySQL un grafico ASCII nei risultati di una query.

questo post continua, leggi il resto

Yes, I am a data geek / 2

24 maggio 2010

9 commenti

Mi ero ripromesso di raccontare un po’ delle esperienze tecniche fatte con Blogbabel, poi i mesi passano e non sembra mai essere il momento buono, così ho deciso di buttare giù qualche appunto sperando di trovare nei prossimi giorni le motivazioni per arricchirli ed espanderli.

questo post continua, leggi il resto

Che noia...

5 febbraio 2008

8 commenti

Aggiornamento. Marco mi ha scritto e ci siamo chiariti a vicenda. Lui ha un po’ esagerato nel giudicare il mio commento originale, io nella reazione al suo post. Grazie Marco per essere uscito allo scoperto e avermi contattato direttamente, è stato un bel gesto che apprezzo. Avrò un carattere un po’ burbero ma le cose poi si chiariscono se c’è la volontà.

Che noia quelli che pretendono l’Open Source sul lavoro di altri, senza capire minimamente perchè in certi casi non ha senso (un servizio è molto diverso da uno strumento, o da una applicazione), e soprattutto senza aver mai donato nulla alla comunità se non un po’ di chiacchiere sul proprio blog. E per la cronaca, la mia affermazione “parlo per esperienza su altri progetti Open Source che ho creato o cui ho contribuito” non è “superficiale e spocchiosa”, caro il mio blogger. Prima di scrivere cazzate informati:

Tra l’altro, gli ultimi due progettini sono pezzi di BlogBabel. Certo non sono Linus Torvalds, ma tu dall’alto della comoda turris eburnea da cui sputi sentenze, che hai fatto in questi anni?

Bachechina annunci: lavoro Java e PHPday 2008

5 dicembre 2007

2 commenti

Se programmate in Java e siete alla ricerca di un lavoro part-time per i prossimi mesi, date un’occhiata all’annuncio pubblicato ieri sul blog di Enrica. Se invece siete uno di quei brontosauri che ancora usano PHP (Fullo perdonami ma non ho resistito), il phpDay 2008 potrebbe fare per voi.

Qix, versione 3.0

6 ottobre 2007

23 commenti

Qualcuno se ne sarà già accorto: ieri sera ho girato la chiavetta e abbandonato finalmente WordPress (+Lightpress) dopo 3 anni di onorato servizio. Il nuovo software che fa girare questo blog è scritto in Django,
ed è la versione monoblog di quella che — spero — diventerà una
piattaforma multiblog e multiutente stabile, facile da gestire e con
qualche funzionalità interessante, come scrivevo un po’ di tempo fa.

Mancano ancora parecchie cose, prime fra tutte il caching delle pagine pubbliche (ora sono tutte generate dinamicamente) e una console di amministrazione su misura, invece di quella standard di Django con qualche modifica che sto usando ora. Altre cose ci sono già (temi, plugin, trackback, weblogs ping, editor WYSYWIG, ecc.), e soprattutto l’applicazione è strutturata in maniera lineare, in modo da permettere a chi mastica un po’ Python di estenderla facilmente. Credo infatti (e lo sostengo da tempo) che sia ora che qualcuno sviluppi una piattaforma alternativa a WordPress e MovableType, con un’architettura più semplice e moderna che garantisca prestazioni decenti e una facile estendibilità da parte di sviluppatori, designer e utenti. Non so se sarà la mia, ma intanto ci provo.

Il nuovo software segue la tradizione ufficiosa delle applicazioni Django (e di Django stesso) che dà alle applicazioni il nome di un musicista famoso: Django (Reinhardt), (Duke) Ellington, (Luis Armstrong detto) Satchmo. Il nome che ho scelto è Luambo, in onore di François Luambo Makiadi detto Franco, forse il più grande musicista di rumba congolese — genere musicale che da un po’ di tempo accompagna le mie ore di coding.

Oltre al software ho cambiato anche layout: era tempo che volevo qualcosa di più semplice e leggibile, il vecchio layout a tre colonne (che pure ai tempi era abbastanza innovativo) va bene per un blog commerciale, ma mi stava sempre più stretto e insieme a WordPress finiva per togliermi la voglia di scrivere. Il nuovo layout è stato abbozzato da me e rivisto da Antonio Cavedoni, che è tra i pochi in Italia in grado di coniugare web design e tipografia.

Se avete commenti o curiosità, fatevi sentire nei commenti. E abbiate pazienza se salta fuori qualche bug, vedrò di sistemarlo più velocemente possibile.