Problemi con c:forEach e JSF lifecycle

Mi sono recentemente ritrovata a risolvere un problema verificatosi in una situazione che può sembrare particolare, ma penso sia più frequente di quello che può sembrare: si tratta dell’uso del tag JSTS c:forEach in combinazione con tag JSF (in Facelets) che rappresentavano componenti aggiornate tramite PreRenderViewEvent listener.

Ho imparato a mie spese che non è saggio utilizzare insieme tag handlers JSTL e componenti; la differenza tra i due tipi di tag non è sempre lampante ma risulta evidente riflettendo sulla definizione: i tag che rappresentano componenti sono logicamente collegati ad un oggetto del managed bean, mentre i tag handler non rappresentano componenti e non diventano parte del component tree quando la view viene costruita, ma aiutano semplicemente nella costruzione stessa.

Leggi tutto “Problemi con c:forEach e JSF lifecycle”

Prodotti Configurabili facili e veloci su Magento

Uno dei motivi per cui preferisco sempre usare Magento invece che altri tipi di CMS per l’e-commerce, è la facilità con cui è possibile creare qualsiasi tipo di prodotto, collegarli tra loro o inserire le più svariate opzioni.

L’unico aspetto che forse può scoraggiare è che, quando si crea un prodotto configurabile,  va creato un prodotto per ogni singola configurazione; se ad esempio abbiamo 4 variabili, e ognuna di queste 4 variabili ha 4 opzioni, alla fine dovremo creare 16 prodotti, che chiamerò per comodità “sottoprodotti”, da quel prodotto configurabile.

Leggi tutto “Prodotti Configurabili facili e veloci su Magento”

Risolvere SVN lock quando svn cleanup fallisce

Sviluppare software in modo professionale richiede un sistema di versionamento, che consenta editing collaborativo, revisioni, possibilità di gestire branch ed integrazione con un sistema di issue tracking. A ELbuild abbiamo scelto Subversion, un sistema che non ha bisogno di presentazioni in quanto costituisce un riferimento per migliaia di aziende nel mondo.

A volte, utilizzare client eterogenei sulla stessa copia locale, ad esempio quelli integrati dentro gli IDE come Netbeans, o le windows shell extension come Tortoise SVN, può provocare blocchi di una working copy locale, blocchi non risolvibili tramite il comando svn cleanup.

Leggi tutto “Risolvere SVN lock quando svn cleanup fallisce”

Un approccio pure java per la validazione di indirizzi email

Esistono diversi servizi a pagamento che consentono di spedire newsletter, tuttavia chi, come noi, è dotato di un SMTP proprio su server dedicato e non deve spedire milioni di mail, ma solo qualche decina di migliaia, può pensare di crearsi un tool molto semplice per farselo gratis ed in casa. In quest’ottica, mantenere una lista di indirizzi pulita e libera da typo o mail non più esistenti (domini sbagliati, username sbagliati) diventa una priorità per risparmiare risorse server ed evitare le centinaia di mail  di ritorno (spesso in più mandate per i vari retrial). A questo scopo ho realizzato un validatore email che sfrutta tre principi, il banale syntax checking, la validazione del record MX associato al dominio, ed infine la validazione della mailbox tramite il protocollo SMTP (i vari HELO, MAIL FROM, RCPT TO).

Leggi tutto “Un approccio pure java per la validazione di indirizzi email”

Le mie disavventure con Apple Mag Safe

Storia di come in 3 anni abbia cambiato due MacBook Pro Unibody e sia riuscito ad ammaccarli entrambi. A mia discolpa posso imputare l’ultima disavventura ad un difetto nel connettore Mag Safe!

Il mio primo MBP ammaccato dopo 8 giorni dall'acquisto. Foto 2
Il mio primo MBP ammaccato dopo 8 giorni dall'acquisto. Foto 2

Per la seconda volta scrivo da un MacBook Pro con il case Unibody ammaccato. Il mio primo unibody (Intel 2 Core Duo 2,53 Ghz 4GB), comprato in mega anteprima a fine settembre 2008 era stato vittima di un incidente dopo 8 giorni che era fra le mie mani. Praticamente, mentre camminavo in centro, la tracolla della borsa che usavo da anni, compresi tutti i mesi dell’Erasmus si ruppe ed a nulla valsero l’imbottitura ed la Second Skin, una malefica moneta a contrasto con la cerniera della Second Skin provocò un’ammaccatura a cui, dopo i primi improperi degni di Germano Mosconi, mi affezionai quasi.

Leggi tutto “Le mie disavventure con Apple Mag Safe”

Primi passi per creare un modulo custom per Magento 1.6

Magento è uno strumento potente per creare siti e-commerce e offre molte funzionalità già nella sua versione base, o con l’aggiunta di moduli gratuiti. Tuttavia presto o tardi si presenterà l’esigenza di andare ad implementare un modulo custom, per rispondere a richieste specifiche del cliente, dovute al contesto di applicazione o a esigenze particolari.

Vediamo allora quali sono i primi passi per costruire un modulo custom. Partiremo da zero ed andremo a costruire un tipico esempio “Hello World”.

Leggi tutto “Primi passi per creare un modulo custom per Magento 1.6”

HTML to TEXT ratio e Keyword Density – Indicatori statistici SEO

HTML to TEXT ratio e keyword density sono due indicatori sintetici che permettono di stabilire quanto una pagina web sia fruibile e quanto sia affine ai siti comunemente indicati come spam. Un’attività di reverse engineering permette di capire quale sia la fascia dei valori consigliabili per questi due parametri, da sfruttare a scopo di migliorare il proprio posizionamento nelle SERP.

Ogni giorno ho la conferma di quanto l’ottimizzazione dei contenuti e della struttura di un sito web in chiave SEO sia un processo che necessita di un bagaglio di skill tecnici molto più ampio di quanto comunemente si pensi. Non basta più scegliere bene il contenuto dei tag title, e disporre ad arte le keyword negli heading, ma serve una buona base statistico/matematica oltre che ad una padronanza tecnica degli aspetti di sistema che stanno dietro ad una pagina web, primo fra tutti il controllo del web server (o dell’application server) e dei moduli per le operazioni di rewrite, proxying etc.

Leggi tutto “HTML to TEXT ratio e Keyword Density – Indicatori statistici SEO”

Wysiwyg editor con image upload e stili di testo in Drupal 7

Quando si propone ad un cliente un CMS, molto spesso viene richiesto di poter caricare immagini, non come campo strutturato, ma come elemento libero nelle parti di testo modificabili. Richiesta più che ragionevole 🙂

Se la nostra scelta è caduta su Drupal, sappiamo che installare un editor Wysiwyg non è sufficiente per raggiungere questo scopo: dobbiamo seguire qualche altro semplice passo. Per questa analisi stiamo prendendo in considerazione Drupal 7.

Leggi tutto “Wysiwyg editor con image upload e stili di testo in Drupal 7”