lunedì 18 febbraio 2008

Matteogallinucci.it apre i battenti

Mg.it preview


Questo blog si ferma qui, mi trasferisco sul mio nuovo dominio.
Matteogallinucci.it gira sotto la nota piattaforma wordpress ed ha un design decisamente più pulito grazie al tema Fluid Yellow di Ask Graphics ed esteso dal sottoscritto.
Abbonati al nuovo feed rss!

martedì 12 febbraio 2008

Dove includere i file javascript

E' un luogo comune il fatto che gli script javascript vadano inclusi dentro il tag head della pagina. Con l'approdo di ajax sul web, javascript è più utilizzato che mai e il caricamento di tutti i javascript nell'header della pagina rallenta il completamento della pagina. Per questo possono essere inclusi anche dopo, dentro al body, semplicemente prima del loro utilizzo. Certo che inserirli tutti insieme nell'header rende il codice più ordinato, ma in questo modo almeno parte della pagina si è già caricata e l'utente non deve attendere troppo per vedere qualcosa.
Dipende anche dall'utilizzo che se ne fa di questi script; per esempio uno script di validazione delle form come JSValidate è inutile caricarlo nel file header del vostro sito perchè è utile solo dove ci sono delle form, basterà caricarlo nelle pagine opportune. Script come quello di Google Analytics possono essere caricati tranquillamente nel vostro file di footer, prima della chiusura del body, così sarà presente in tutte le pagine e non inficierà sul caricamento del resto della pagina. Se usate script grafici in tutta la pagina, come scriptaculous o mootools, converrà includerli nell'header, in modo che la pagina sia interattiva il prima possibile rispetto ai tempi di visualizzazione della stessa.
Un'altro stratagemma per evitare il rallentamento dei javascript è l'uso dell'attributo defer nel richiamo dello script:


<script type="text/javascript" defer="defer" src="library.js"></script>

che però funziona diversamente a seconda del browser. Inizialmente era stato pensato per caricare lo script al termine del caricamento della pagina; IE invece ha reinterpretato quest'attributo, caricando il file nel momento del richiamo, ma eseguendo il codice all'interno dello script in differita, solo quando la pagina è stata caricata.
Personalmente utilizzo defer solo quando non posso farne a meno, preferisco il primo metodo che è cross-browser e più performante.

Vedi anche:
quirksmode.org
hunlock.com

Troppo web 2.0 fa male?

Dopo l'euforia iniziale che si è diffusa col divulgarsi del web 2.0, sorgono delle riflessioni: ma serve tutto questo 2.0?
Certamente una cosa meravigliosa che offre il nuovo web è la fornitura di qualsiasi servizio digitalmente fruibile, e molto spesso in modo gratuito, al contrario di buona parte delle applicazioni desktop. Parliamo però dei social network...ma quanti ce ne sono? Ci servono realmente tutti? Lo ammetto, anch'io mi faccio prendere e mi iscrivo ovunque capito, e finalmente posso dire "ci sono anch'io" in ogni qualsivoglia sito. Ma cosa me ne faccio di tutti questi account, che tra sì e no ne userò un quarto? Credo proprio, come tanti altri, di rientrare nella categoria "prezzemolini del web".
A tal proposito, condivido con questo articolo l'idea che le killer application del 2008 saranno gli aggregatori di identità digitali, che permettono di loggarsi ad un unico servizio che li comprende tutti quanti.

lunedì 11 febbraio 2008

Guida per inserire una Google Map nel proprio sito web

  1. Cercare la locazione in cui punterà la mappa in maps.google.com
  2. Cliccare su "Link to this page" e prelevare il parametro ll dal codice dell'iframe, che sarà tipo ll=12.325678,34.567890
  3. Recarsi su code.google.com/apis/maps/ e cliccare "Sign up for a Google Maps API key", aderire e inserire il dominio di destinazione della mappa
  4. Prelevare la chiave e il codice per quel dominio
  5. Il codice consiste in:
  • Due tag script; la chiave è già quella giusta, sostituire in GLatLng latitudine e longitudine prima prelevate (il parametro ll)
  • funzione load
  • chiamate a load e unload nel body
  • tag div dove inserire la mappa
Voilà, il codice per la mappa è pronto, copiare la nuova pagina generata nel vostro sito o inserire gli elementi citati nel punto 5 in una pagina esistente.
Per aggiungere funzionalità aggiuntive, si può consultare la documentazione.

sabato 9 febbraio 2008

Spese 2008, contabilità familiare semplificata

La versione 5 dell'applicativo è finalmente pronta per il rilascio, dopo un periodo di testing.
Spese 2008 introduce qualche nuova funzionalità, ma lo sviluppo si è incentrato soprattutto verso la semplificazione della logica preesistente.
Vediamo in breve le novità introdotte:

  • Separati fogli di inserimento dati dai fogli di riepilogo
  • Possibilità di cambiare i nomi dei vari conti bancari, che sono al massimo 6
  • Liste di elementi più lunghe: spese, entrate e movimenti mensili, lista categorie e persone per debiti e crediti
  • Introdotto il pannello movimenti più semplificato, comprensivo di commissioni, ora calcolate automaticamente
  • Introdotte le sottocategorie per uscite ed entrate (per poter generare tabelle pivot con sottocategorie)
  • Migliorata gestione storico dei debiti e crediti, ora con quantità saldate
  • Design più accurato e gradevole, più adatto a schermi wide

Scarica gratuitamente Spese 2008:
-Versione per Excel 2007
-Versione per Excel 2003 o precedenti


Se ti piace, se non ti piace, se hai consigli da darmi o vuoi una personalizzazione contattami o posta un commento. Se invece vuoi contribuire allo sviluppo, puoi fare una donazione.

lunedì 4 febbraio 2008

Thickbox css code validation fails. Get valid code!

In Thickbox css code there are some hacks that doesn't validate the code (only css, rather xhtml is valid).
Invalid code is javascript inline css document. So, I changed invalid code with a js function call. Take an example:


* html #TB_overlay { /* ie6 hack */
position: absolute;
/*height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'); NOT VALID*/
height: expression(fixHeight(document.body.scrollHeight, document.body.offsetHeight)); //VALID
}

* html #TB_window { /* ie6 hack */
position: absolute;
/* margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px'); NOT VALID */
margin-top:expression(fixMarginTop(this.offsetHeight,document.documentElement,document.body.scrollTop)); //VALID
}


So substitute expression inline in css file with calls to fuctions externally defined, and load the following file whenever you're using thickbox in your site:

expressions.js:

function fixHeight(scrollHeight, offsetHeight)
{
return (scrollHeight > offsetHeight ? scrollHeight : offsetHeight + 'px');
}

function fixMarginTop(offsetHeight,documentElement,scrollTop)
{
return (0 - parseInt(offsetHeight / 2) + (TBWindowMargin = documentElement && documentElement.scrollTop || scrollTop) + 'px');
}


To use Thickbox now you need these loadings:

<script type="text/javascript" src="/lib/thickbox/jquery.js"></script>
<script type="text/javascript" src="/lib/thickbox/thickbox.js"></script>
<style type="text/css"> @import "/lib/thickbox/thickbox.css"; </style>

venerdì 1 febbraio 2008

Preloading :hover images to avoid bad winkles

I found several ways to preload :hover images, to avoid bad winkles and loading waiting time: the most appropriate way are from maratz.com and netmechanic.com, but I think that the better and cleaner way is the following.
We simply declare in css images with their rollover file, and a class for a hidden div:

style.css

a { background:url(image.jpg) }
a:hover { background:url(rollover-image.jpg) }
.preload_img { display:none }

and in html file we preload in the hidden div all hover images, before </body> tag, so we don't slow down loading of the page contents:

index.php
<div class="preload_img">
<img src="http://www.blogger.com/rollover-image.jpg" alt="rollover" />
</div>