Gli Strumenti di un Web Designer – Parte 3

Ed eccoci a continuare la nostra maratona sugli strumenti di un Web Designer.
La scorsa puntata è stata dedicata alle applicazioni di Editing Testuale e ad SVN, oggi tocca a: 

Programmi di Virtualizzazione o Vari Computer di Testing

Il Web è tanto bello proprio perchè ciò che andiamo a creare ha una visibilià immensa. Ogni computer, cellulare o altro dispositivo atto per la connessione ad Internet, può visualizzare il nostro contenuto..

Però questo crea un’enorme problema (e investimento), dobbiamo testare il nostro operato su ogni tipo di piattaforma, o quasi.

Quindi potremmo comprare un paio di computer, un Mac e un PC, installare nel PC varie versioni di Windows e vari browser e poi fare il testing direttamente sulle macchine.

L’altra soluzione altrimenti è quella di comprarsi un bel Mac, un bel programma di virtualizzazione (Parallels, o Fusion) e installare li alcune versioni di Windows e quindi i relativi Browser.

Quest’ultima soluzione è quella che ho adottato io, perchè mi permette di risparmiare un sacco di soldi e di avere tutto a portata di mano.. o di click!

In verità ci sarebbe un’altra soluzione, quella di affidarsi ai siti che ti fanno dei grab in varie versione di OS e Browser. L’unica pecca, oltre alla lentezza, è che spesso dobbiamo anche vedere il comportamento dei computer e testare pure il “carico” del nostro lavoro.

Quindi a voi la scelta della migliore soluzione.

Programmi di Grafica o Editing Grafico

Ogni Web Designer, deve, avere un Editor grafico, anche uno sviluppatore. Perchè capiterà sempre di dover modificare un bottone o una riga..

E allora, quale programma migliore? Secondo me, Photoshop.. Cerco che è costoso, però una vecchia versione (come la 7) può andare benissimo per fare molte cose.
In alternativa c’è GIMP, applicazione potente e gratuita, quindi ottima.

Certo che avere un Programma di Editing Grafico è obbligatorio! Su questo discorso non mi ci soffermo perchè oramai lo sappiamo tutti.

Programma per la generazione di Diagrammi di Flusso

Parto dal presupposto che tutti sappiamo cosa è un Diagramma di Flusso. Non sto neanche a soffermarmi sul perchè dobbiamo utilizzarlo. Ogni professionista si sarà ritrovato almeno una volta a dover rifare un lavoro da capo solo perché è stato progettato male.

Quindi, ce ne sono varie di applicazioni, io consiglio OmniGraffle (OSX) e siccome non ne conosco per Windows, direi che MindMeister può andare benissimo per molti.

Programma per la gestione di Progetti o Gestionale

Molti sicuramente pensano di poterne fare a meno, io invece credo che sia fondamentale. L’organizzazione nel nostro lavoro è tutto, e senza ci scontriamo ogni giorno con mille problemi.

Anche qui la scelta è varia, io mi sono trovato benissimo con BaseCamp, servizio a pagamento (o anche gratuito con molte limitazioni) e veramente completo. Si possono creare progetti, inserire milestones, to-dos, writeboards, files eccetera. Tutto multiutenza e veramente ben fatto.

Se invece state cercando qualcosa di gratuito e magari da installare nel vostro server, il migliore è activeCollab, la versione 0.6 è gratuita e permette di fare quasi tutto quello che fa BaseCamp.

Altri programmi per la condivisione di Documenti

Sinceramente questo punto è un plus. Io mi sono trovato benissimo ad utilizzare i servizi di Google (GMail, Calendar, Documents) al punto di aver affidato a Google ogni mia casella di posta elettronica e di aver passato tutti i miei documenti a Documents. Questo mi permette di condividere i files di lavoro (e non in verità) a chiunque e di averli sempre a portata di mano, anche se non sono davanti al mio computer.

Eccoci alla fine. Spero di aver fatto piacere a colleghi, collaboratori e non. Dando qualche input per migliorarci tutti.

Come sempre, commenti e feedback sono sempre i benvenuti!

Gli Strumenti di un Web Designer – Parte 2

Riprendiamo il discorso degli strumenti da utilizzare per renderci il più produttivi possibile.

Server e Client SVN

Chi di voi ha sentito parlare di Subversion? e di CVS?
Detto in parole povere (se volete saperne di più basta cliccare nei link qua sopra), si tratta di un sistema per la gestione delle “versioni”.
Cosa vuol dire? Che semplicemente con questo sistema si può avere il massimo controllo di ciò che stiamo facendo durante lo sviluppo di un software, vuoi che sia un Sito Web, vuoi che sia un’Applicazione.

Tramite questo sistema possiamo lavorare in gruppo (ma anche da soli lo reputo fondamentale) allo stesso progetto e agli stessi files senza andare a rovinare il lavoro prodotto dagli altri.

Non solo, ma grazie a Subversion (detto SVN, che comunque è un’evoluzione di CVS), avremo la storia di tutto il progetto, delle modifiche fatte, da chi, come e perchè.

Integrando al nostro metodo di lavoro SVN, andiamo ad aggiugere un valore enorme al nostro operato.

Ma faccio un’esempio così che tutti possiamo capire:

Immaginiamo di lavorare ad un sito per un nostro cliente, anche da soli.
Dopo un anno dalla fine dello sviluppo, questo cliente, ci chiede di reimplementare la funzione che avevamo creato 4 mesi prima e che ci aveva fatto togliere perchè non gli piaceva (ma poteva anche essere una parte di una pagina, un css, etc..).

Senza SVN dovremmo andare a ricercare i vecchi files (backup permettendo) quindi reimplementare la funzione, se non addirittura rifarla da capo.

Con SVN basta guardare la storia della nostra applicazione e avviare un comando per riavere la nostra funzione completamente operativa come quando l’avevamo creata.

Questo è ovviamente un’esempio, ma potrei farne altri mille di questo genere.

E pensate a quando lavorate in due o più ad un progetto, dove tutti andate ad aprire e modificare gli stessi files. Senza SVN sarebbe impossibile.

Editor Testuale o IDE

Lo strumento per eccellenza di ogni Sviluppatore o di ogni Web Designer. L’Editor Testuale è obbligatorio.

Ogni Web Designer conosce a mente ogni tag e la loro sintassi e quindi gli strumenti come Dreamweaver, GoLive etc diventano solamente dei pensanti ed inutili gingilli.

Quindi parliamo di Editor Testuali. Per Windows c’è il famosissimo UltraEdit, per OSX penso che quello migliore ad oggi sia TextMate.

Questi editor non fanno niente di troppo sorprendente, colorano la sintassi del codice, hanno qualche snippets per la scrittura veloce di codice. Alcuni fanno anche da debugger e, la cosa più importante, hanno integrato un Client SVN. Questo vuol dire che una volta operato sul file possiamo andare ad applicare le nostre modifiche ai file salvati nel Server SVN, tutto con un click.

Le IDE sono molto comuni tra Web Designer e Web Developer, sono più potenti di un’editor testuale e permettono di eseguire codice (come ad esempio PHP o altro), di fare debug ed hanno funzionalità di inserimento di codice molto avanzate.
Un IDE molto usato è Aptana, ma anche XCode e lo stesso Eclipse vengono utilizzati ogni giorno per sviluppare. Ad ognuno quello con la quale si trova meglio.
Io personalmente sviluppo utilizzando Textmate e in più utilizzo Versions come client SVN. Tutti per OSX.

Anche questa puntata è andata.. consiglio vivamente a tutti di continuare a seguirmi!

Buona programmazione!

Gli Strumenti di un Web Designer – Parte 1

Molto spesso mi confronto con colleghi o semplici amici che fanno lo stesso mio lavoro e ci scambiamo opinioni su quali strumenti utilizzare e che metodo di lavoro adottare per essere produttivi e avere un livello di qualità molto alto.

Quindi ecco qui che faccio una lista di strumenti necessari ad ogni Sviluppatore Web.

  • Server Web e SQL
  • Server e Client SVN
  • Editor Testuale o IDE
  • Vari computer o Sistemi Operativi Virtualizzati
  • Programmi di Grafica
  • Programmi per generare Diagrammi di Flusso
  • Programmi per la gestione di Progetti
  • Altri programmi per la condivisione di documenti
Adesso vediamo a cosa servono certi strumenti.

Server Web

Avere un server Web e un server SQL (MySQL, Postgre od altro) è fondamentale per poter lavorare in autonomia ed al massimo delle prestazioni.
La migliore sarebbe potersi installare tutti i pacchetti a mano (Apache, PHP, MySQL ed altri) in modo da avere la medesima versione del nostro Server Online, ma in mancanza di competenza (la competenza di server-administrator non è così semplice da avere) ci possiamo affidare ai pacchetti preconfigurati come WAMP, MAMP o XAMPP.

Questi pacchetti sono semplicissimi da installare e con pochi click puoi avere un server perfettamente funzionante all’interno del tuo computer.

Avere un Server all’interno del proprio computer ci permette di lavorare molto più velocemente e ci da la sicurezza di poter “sperimentare” qualsiasi cosa senza compromettere il funzionamento della macchina online, magari dove stanni i nostri migliori progetti e anche quelli più importanti.

Questo è un’anticipo, la prossima volta parlerò di SVN.

Continuate a seguirmi!

Quale Hosting Scegliere? – Parte 1

La scelta dell’hosting è sicuramente una parte fondamentale per un web developer.

L’hosting deve essere sicuro, affidabile ed avere dei requisiti che rispecchiano le necessità del cliente ma anche le necessità dello sviluppatore.

Per sviluppare infatti applicazioni o siti complessi che fanno uso massiccio di tecnologie Server-Side, ci dobbiamo affidare a soluzioni hosting di alto livello.

Io personalmente mi sono affidato a MediaTemple.

MediaTemple infatti offre una serie di servizi ad alto livello. Il mio server ad esempio è un Grid Server ed offre alte prestazioni ed alta qualità.

Un’altro punto da tenere in mente è l’assistenza. Infatti capita molto spesso di dover fare manutenzione al server, backup, aggiornamenti dei software, del webmail ed altro ancora.

Se non abbiamo le competenze giuste, non possiamo mantenere un nostro server in Housing e quindi dobbiamo affidarci a Terze Parti che offrano servizi adeguati.

Le tencologie della quale necessito per lo sviluppo di siti web o applicazioni sono:

  • Server basato su sistema operative *nix (Linux, Unix, etc.) – non Windows
  • minimo di 100Mb di spazio disco a disposizione
  • acceso FTP allo spazio di hosting
  • possibilità di salvare files fuori della root del sito (webdoc root)
  • accesso tramite SSH al server
  • Apache web server
    • .htaccess disponibili in tutte le cartelle del sito (AllowOverride All)
    • mod_rewrite abilitato (RewriteEngine, RewriteBase, RewriteCond, RewriteRule)
    • mod_alias abilitato (Redirect, RedirectMatch, RedirectPermanent)
    • mod_mime abilitato (AddType)
    • mod_dir abilitato (DirectoryIndex)
    • mod_autoindex abilitato
    • mod_negotiation abilitato
  • PHP 5.0 superiore con l’estensione gettext abilitato
  • MySQL Server 4.1 o superiore
  • 1 database MySQL (nessuna restrizione sulle dimensioni del database)
  • phpMyAdmin o equivalente

Questi requisiti sono assolutamente necessari per lo sviluppo di siti e applicazioni web di ultima generazione.

Oltre a questi, come ho detto prima, necessito di assistenza 24/7 sul mio server e di aggiornamenti costanti dei software installati sullo stesso per non incontrare bugs che possono compromettere il funzionamento dello stesso.

Come potete vedere quindi la scelta dell’hosting è un punto fondamentale del nostro lavoro. Anche per questo motivo non posso offrire hosting a basso costo ai miei clienti e sinceramente non li consiglio neanche.

Altri punti fondamentali sono, la connettività, la banda a disposizione. Ma ne parleremo nella prossima puntata.