Maggio
23

Drupal vs. Joomla

Posted In: Opensource, Php, Web by Dario

Tra pochi giorni inizierà il Google Summer Of Code 2008, al quale prenderò parte lavorando per Drupal.

Guardando le caratteristiche di Drupal si può affermare che è forse il cms più avanzato in circolazione, sia per i metodi si sviluppo che per le caratteristiche implementative. Tuttavia ci sono due punti di vista sotto i quali Drupal è davvero carente. Questi sono l’usabilità, e l’ottimizzazione nei confronti dei motori di ricerca (ai quali va aggiunta la community italiana, poco numerosa).

Joomla, a differenza di Drupal, eccelle specialmente in questi due fattori, che lo rendono l’antagonista principale del cms dalla goccia blu. Infatti Joomla include un interfaccia amministrativa semplice, poco ambigua e di facile comprensione. Drupal non ha queste caratteristiche, molto spesso non sai dove mettere le mani per via di un’interfaccia poco comprensibile. Sicuramente la skin di default non aiuta per niente, poco chiara e tutta blu.

Al Summer Of Code partecipa un ragazzo che cercherà di costruire una dashboard per Drupal, stile dashboard di Wordpress 2.5. Spero riesca a fare un buon lavoro ed a colmare questo gap determinante nei confronti di Joomla.

L’unica cosa che si sa per ora è che la guerra con Joomla continua.

Maggio
14

Visto che dovevo fare questa cosa da 2 secoli ho pensato di segnalare il plugin che ha velocizzato le mie operazioni di upgrade.

Wordpress Automatic Upgrade Plugin, ricordatevi di disattivarlo appena finito.

Febbraio
27

Summer of code 2008

Posted In: My Life, Php by Dario

Anche quest’anno Google organizza il Summer of Code.
Sono seriamente intenzionato a tentare la fortuna. Prima però vediamo cosa propongono i mentor di Drupal.

Febbraio
24

Scrivere codice

Posted In: Php by Dario

Una delle difficoltà maggiori che ogni sviluppatore incontra consiste nello scrivere codice comprensibile.

E’ difficile capire come funziona il codice scritto da altri.

Quì non si parla di misteri della fede, questa è verità allo stato puro. Non conta se chi ha scritto la parte di codice che stai analizzando è un maiale o un’aquila (con tutto il rispetto per i maiali, ma vedo difficile che riescano a pigiare i tasti della testiera con quelle zampe), è estremamente difficile riuscire comprendere concettualmente il codice scritto da altri.
E quindi cosa si fa? Ogni volta rifacciamo da capo? A meno che non lavoriate da Netscape non vi permetterete mai di essere così pazzi.
Il mondo del software funziona al contrario rispetto al mondo dell’hardware, in quest’ultimo l’oggetto più recente è migliore di quello più vecchio, nel mondo del software invece succede l’esatto opposto.
Codice testato e funzionante è sinonimo di eccellenza, codice nuovo in fase alpha o beta è sporcizia da ripulire. Purtroppo (o per fortuna, dipende dai punti di vista) il cliente crede sempre che nuovo sia meglio, dopotutto nel mondo gran parte delle cose funzionano secondo questo ordine, ma questa è un’altra storia.

Dicevamo: come faccio a scrivere codice leggibile? Mi hai appena detto che leggere codice scritto da altri è difficile!
E’ vero ho detto che è difficile, se non utilizzi delle regole ben precise rischi di rendere questa cosa impossibile.
Ma chi sono io per dirvi come fare a scrivere codice comprensibile? Chiariamo subito che non ho inventato nulla, le mie regole sono quelle che reputo migliori tra un insieme enorme di possibilità. E così, direttamente da uno dei migliori cms in circolazione eccovi la bibbia:
http://drupal.org/coding-standards
Sono regole semplicissime, tuttavia il codice di drupal è eccezionale, pulito, semplice, leggibile. 
E’ vero poi che ognuno ha il suo stile, e cambiarlo non è semplice.

Febbraio
1

Sbagliando si impara

Posted In: Php by Dario

Ho iniziato più volte dei progetti software senza portarli a termine. Il grosso problema spesso è che la fretta fa da cattiva consigliera, portandoti a lanciare il tuo talento sul codice senza pensare a cosa effettivamente devi fare.

Così vai ad intuito, cerchi le soluzioni che ti permettano per prime di portare a termine un lavoro fino a quando giungi in un black hole, un buco nero, dove sei costretto a modificare metà di ciò che hai già fatto per poter proseguire.
Per questo motivo, lascia che te lo ripeta: “La fretta è una cattiva consigliera!”.

Ogni sviluppatore che per un motivo o per l’altro non dispone di un program manager che scriva le specifiche funzionali (si forse solo da Microsoft, Google e Yahoo esiste un tizio che fa solo quello) dovrà prima o poi cimentarsi in quest’arte.
Solitamente mi rifaccio a questa regola per scrivere specifiche funzionali:
Regola 1 di Joel Spolsky: Scriverle certo, non è piacevole -> Leggerle nel 99% dei casi lo è anche meno -> Gli sviluppatori odiano leggere cose lunghe -> Fai in modo che gli sviluppatori le leggano -> Scrivile facendo si che nessuno si addormenti leggendole -> Scrivile simpatiche e divertenti.
Nessuno ti ucciderà perchè paragoni maiali e civette a grafici e commerciali. Non è nemmeno detto che qualcuno ti ami per questo, ma se non ti amano sei già a buon punto. Significa che le hanno lette. E se le hanno lette quella che segui è la strada migliore.

Le specifiche funzionali sono importanti. E’ risaputo che ogni nerd programmatore ama sbattere giù righe di codice solo se sa con un’accuratezza superiore al 100% cosa fare, ed è oltremodo risaputo che colui non attenderà un secondo per mandarti al diavolo quando gli chiederai di realizzare qualcosa senza spiegarglielo nel minimo dettaglio. E’ la legge, se credi di essere furbo ad infrangerla sappi che, non tu per cui abbassa le mani, ma il tuo progetto ne risentirà.

Conosci Dia? Conosci Freemind? Conosci un software simile? Non puoi credere di realizzare un progetto software senza averli mai visti od utilizzati (se utilizzi Visio ti salvi in corner, con questi fai ciò che basta e sono anche gratis).
“Blèh… i diagrammi di flusso li facevo a scuola!”
Già, c’è un motivo per cui te li hanno insegnati sai? Per aiutarti ad usare quella piccola parte di materia grigia che resta nei bassifondi del tuo cervello…prova a ragionare con questi, sono sicuro che dopo averlo fatto ti sentirai meglio (ti renderai conto anche di essere molto più produttivo di quanto immagini).
Ti basta un’ora per realizzare un diagramma di flusso di un sito web di media complessità, risparmierai una vita quando svilupperai.
Un’ora per una vita.