luglio 2009

Atrium

5
Interfaccia di Atrium

Ci sono diversi applicativi per la gestione dei progetti, e dei gruppi di lavoro, ogniuno con i propri pregi e difetti, questo significa che alcuni di essi si adatteranno meglio alle nostre esigenze di altri, e sopratutto può soddistarlemeglio in alcune situazioni e meno in altre. Per questo motivo è importante conoscere quali strumenti possiamo usare per poter scegliere il migliore per la nostra esigenza.

Il progetto che voglio persentarvi è rilasciato da Development Seed ed è un progetto basato su Drupal. Vediamo le opportunità che ci offre.

Validatore W3 in locale

0
Validatore in locale

Chi di voi utilizza il validatore del codice (X)HTML del W3C per controllare che quello che generiamo sia codice pulito? Su le mani.

Troppe poche mani alzate, quindi come prima cosa abbituiamoci a controllare il codice. Alcuni buoni motivi? Bhè, innazitutto avere del codice validato ci permette di rendere il nostro contenuto più facilmente fruibile agli utenti che vi accedono con browser non convenzionali (per capirci screen-reader, browser per dispositivi mobili, ...); inoltre, nonostante alcuni SEO Expert dicano che il vantaggio è minimo, è comunque un vantaggio dal punto di vista S.E.O. e non per ultimo, essendo l'XHTML uno standard va rispettato.

Anche se nella fase iniziale stiamo particolarmente attenti a chiudere tag, a non inserire block element in inline element può capitare che, per riutilizzo del codice o per necessità impellenti, questo non venga controllato, proprio per aiutarci in questa fase di debug l'utizzo del validatore del W3C ci aiuta.

Trac con SVN su Ubuntu 9.04

5
Interfaccia di Admin di Trac

Per la gestione di progetti, sopratutto quando ci si lavora in più di una persona, ma anche nel caso della singola personaquando si ha la necessità di tracciare quello che viene fatto non può mancare un meccanismo di tracking. Tra questi strumenti quello che preferisco utilizzare è Trac, strumento completo che comprende:

  • Wiki per la gestione della documentazione del progetto.
  • Gestione ticket per la segnalazione di eventuali problemi e attività da svolgere
  • Integrazione con sitemi VCS come possono essere SVN, CVS, Mercury, Git, ...
  • Gestione delle tempistiche (Milestone, Relase, ...)
  • Visualizzazione del codice da web con gestione delle differenze, ...

Oltre a questo si ha la possibilità di integrare diversi plugin (scritti in python) che permettono di aggiungere le funzionalità di più disparate.
Vediamo ora come installarlo e configurarlo.

Views con filtri dinamici

4.6
Pagina di ricerca con filtri dinamici nelle views

Le viste sono uno strumento estremamente potente e permettono di andare ad elaborare le informazioni creando degli elementi (pagine, blocchi, ...) di presentazione. La possibilità di usare dei filtri esposti ne fa degli strumenti adatti alla creazione di strumenti di ricerca dei contenuti.

L'utilizzo della tassonomia come filtro esposto per la ricerca, però, non è così intuitivo, poiché l'eventuale albero viene presentato tutto all'interno di un unica select con una struttura indentata, cosa che per l'utente fruitore medio non è così intuibile.
Nel caso di vocabolario con un elevato numero di termini questo è anche scomodo perchè verranno presentati tutti i termini avendo quindi una lista molto lunga di elementi, decisamente scomoda quando si cerca di trovare un informazione.

Vediamo ora come ricorrere ad una serie di menu a tendina che presentano le informazioni della tassonomia su livelli separati (una select per oogni livello), in cui i livelli successivi vengono caricati in maniera asincrona in base alla selezione precedente.

SASS in gedit per i CSS (3)

0
Interfaccia di gedit con SASS

Negli articoli precedenti ho ampiamente fatto capire che come editor utilizzo il nostro amato (e leggero) gedit.

Ho anche fatto vedere le potenzialità offerte da un metalinguaggio come SASS per la scrittura dei CSS, ovviamente la potenza è nulla senza controllo, quindi vediamo come mettere tutto sotto il controllo di gedit ;)

SASS per i CSS (2)

3
SASS per i CSS con Compass (in ruby)

Come indicato nell'articolo precedente abbiamo visto la comodità di usare un metalinguaggio per i CSS come SASS. Ovviamente i browser non sono in grado di utilizzare direttamente questi file, ma necessitano di ricevere del codice CSS standard.

Questa operazione (NdA:la conversione da SASS a CSS) viene effettuata compilando i file SASS in modo da ottenre i CSS. Il fatto di dover compilare per ottenre dei CSS non deve affatto spaventarci, è un operazione che viene compiuta in automatico in maniera del tutto trasparente a chi scrive i file.

Vediamo ora come installare il tutto e automatizzare questo processo.

SASS per i CSS (1)

5
SASS per i CSS

I CSS sono uno degli elementi che nel corso degli anni, nel settore del web, si sono meno evoluti dal pundo ti vista della struttura utilizzata. Nelle corso delle diverse versioni sono state aggiunge solo proprietà e selettori nuovi.

Probabilmente penserete:

Se non sono cambiati tantomeglio, evito di dover imparare qualche cosa di nuovo!

Purtroppo, non essendosi evoluti non abbiamo a disposizione cose che potremmo ritenere molto comodo, pensate ad esempio alla possibilità di creare variabili con larghezze, poter effettuare dinamicamente operazioni sulle stesse (per esempio questa colonna è pari alla metà della larghezza della colonna principale), oppure il colore di un selettore è pari al colore definito come colore-base a cui viene rimosso "un pò" del colore rosso.

Bene, vediamo cosa si può fare per migliorare (e semplificare) il nostro lavoro di realizzazione di CSS.

Chiamate javascript tra sottodomini differenti

0
Finestre del browser padre e figlia

in alcune situazioni può capitare di dover aprire finestre figlie di quella padre, operazione che si può effettuare tramite javascript ricorrendo al semplice

window.open("http://www.miosito.tpl/finestra.html");

e può anche essere necessario trasferire informazioni dalla finestra figlia a quella padre.

Anche in questo caso javascript ci viene in contro, infatti possiamo utilizzare la chiamata:

window.opener.nomeFunzione(parametro);

per poter arrivare a trasferire l'informazione da una finestra all'altra; ovviamente nella finestra padre deve essere presente la funzione nomeFunzione e questa deve occuparsi di elaborare il parametro (o i prametri) in ingresso.