SEO e www-ness – Un approccio pure Apache per la soluzione del problema

Spesso si trovano in rete post in cui si dibatte sul fatto se sia meglio avere un dominio che “funzioni” solo con prefisso www oppure che lo faccia anche senza. Ad ogni modo quel che è certo è che se abbiamo un dominio che consente di raggiungere (e linkare) il nostro sito sia con www che senza, è necessario prendere una piccola precauzione perchè Google (ed il suo bot) non li considerino domini separati.

Vediamo come fare in tramite un piccolo snippet da inserire nella configurazione Apache del vostro dominio, tipicamente in cima alla sezione dedicata al VirtualHost.

Leggi tutto “SEO e www-ness – Un approccio pure Apache per la soluzione del problema”

Generare password random in Java

Spesso capita di dover generare randomicamente una password per consentire il primo accesso di un utente ad un dato servizio. In Java le soluzioni sono molte, a partire dalla classe RandomStringUtils di Apache fino a soluzioni che passano attraverso la classe UUID o le classi del package digest. Benchè largamente non richiesta ho deciso di fornire anche io la mia personale soluzione al problema, che rispetto ad altre ha il vantaggio di non richiedere librerie di terze parti, essere estramente leggera e fornire un controllo assoluto sul charset dei caratteri ammessi (e volendo sulla probabilità che ogni carattere ha di essere presente rispetto ad altri).

Leggi tutto “Generare password random in Java”

Nuove funzioni e nuovo layout per le pagine di Facebook

Dal 30 marzo è obbligatorio per tutte le pagine di facebook usare il nuovo e tanto odiato layout “a diario”. Personalmente credo che non sia una rivoluzione ma che siano stati inseriti un paio di accorgimenti carini per rendere più o meno evidenti gli elementi presenti, a seconda dell’utilizzo che si fa della pagina. Personalmente ritengo molto elegante aver eliminato il menù sulla sinistra e aver inserito un’immagine di copertina, vero e proprio “header” e punto di attracco nella navigazione della pagina.

Leggi tutto “Nuove funzioni e nuovo layout per le pagine di Facebook”

Creare thumbnail in Java usando ImageMagick

Java thumbnail, generare immagini scalate con ImageMagick e JavaLa creazione di thumbnail è una di quelle operazioni ricorrenti che gli sviluppatori devono affrontare continuamente. L’obiettivo può essere raggiunto in diversi modi, Java, ASP, PHP, Ruby, praticamente ogni linguaggio ha delle classi o dei metodi che, a partire da un’immagine, sono in grado di realizzarne una versione scalata.

Per quanto riguarda il Java spesso si passa da classi del package java.awt o javax.imagesio che su sistemi headless e con schede video praticamente inesistenti (caso frequente su di un server remoto amministrato via SSH) hanno prestazioni di livello insufficiente. Quello di cui tratta questo post è la possibilità di usare uno strumento altamente performante come ImageMagick, chiamando direttamente un metodo statico di una classe Java. Leggi tutto “Creare thumbnail in Java usando ImageMagick”

Usare .htaccess per disabilitare l’hotlinking dei contenuti del tuo sito

Come disabilitare l'hotlinking delle tue immagini
Disabilitare hotlinking via .htaccess

L’hotlinking è una pratica scorretta attuata da soggetti che creano nelle loro pagine web link diretti a contenuti (immagini, video, flash) hostati su altri server in modo da utilizzarne le risorse computazionali e di banda per servire i contenuti ai propri utenti.

Un esempio classico è costituito da link assoluti a contenuti multimediali su un server A che vengono inseriti in pagine web servite dal server B; il browser dell’utente che accede alla pagina web sul server B opererà richieste HTTP verso il server A per reperire le risorse multimediali, causando sprechi di CPU e banda, ed in ultima analisi anche di denaro.

Vediamo come evitare questo problema ricorrendo a poche righe inserite in un file .htaccess nella DocumentRoot folder del server A.

Leggi tutto “Usare .htaccess per disabilitare l’hotlinking dei contenuti del tuo sito”

JCoord, convertire un indirizzo in coordinate usando Java e JSON

JCoord - Java wrapper Google GeoCode v3 API

Sviluppando web application torna spesso ricorrente la necessità di collocare su una mappa Google Maps alcuni punti di interesse, permettendo l’interazione dell’utente con essi. Di solito i punti sono immagazzinati nel database, o letti da servizi di terze parti, non come coordinate, ma come indirizzi in formato human readable, a volte magari affetti da typo.

Per questo motivo ho deciso di sfruttare le API di Google Geocoding v3 in versione JSON e la libreria Gson per crearmi velocemente una libreria Java costituita da un singolo jar da poter sfruttare per tradurre indirizzi in coordinate. Prima di fornire il link per il download due parole sul principio di funzionamento.

Leggi tutto “JCoord, convertire un indirizzo in coordinate usando Java e JSON”

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”