Post  |  Commenti

1st
LUG

Mysql e l’uso del valore NULL

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by raphe | Filed under Programmi

Intorno al valore NULL di Mysql c’è tanta confusione. Questa confusione nasce quasi sempre dall’associazione mentale che viene fatta da molti NULL=vuoto, dove per vuoto si intende la stringa vuota (per capirci, questa ”).

Cosi non è!

Prima cosa da ricordare è che il valore NULL di mysql non significa vuoto.

Vediamo meglio cosa significa e, come e quando, usarlo.

Quello che segue è riferito ai campi di tipo STRING.

Leggi il resto…

Tags: > > >

12th
APR

Le 10 frasi più usate dai programmatori

1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 5,00 out of 5)
Loading ... Loading ...

Posted by raphe | Filed under Programming

A questo link potete trovare la classifica delle 10 frasi più usate dagli sviluppatori.

Chiunque abbia scritto codice in vita sua esclamerà “si è vero!” ad ogni punto!

Personalmente, sottoscrivo in pieno la 2, la 5 e in particolar modo la 7 e la 10.

Il microonde…quanto è vero! :D

Tags: >

13th
MAR

MySQL: query di confronto date su campi varchar

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by raphe | Filed under Programming, Varie

Se per qualche ragione avete un database MySQL in cui ci sono dei campi data il cui formato non è “date” ma testo normale (ad es. “varchar”, “char”, ecc.) e volete comunque effettuare delle query di ricerca filtrando per data, potete combinare due funzioni di MySQL che fanno proprio al caso vostro.

Le funzioni sono:

  • DATE_FORMAT che formatta una data in una sintassi da voi stabilita;
  • STR_TO_DATE che converte una stringa in una data in formato MySQL (YYYY-mm-dd).

Vediamo un esempio:

Leggi il resto…

Tags: > > > > > >

17th
FEB

Sessioni php e frame in Internet Explorer

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by raphe | Filed under Programming

Se per qualche motivo vi trovate ad utilizzare dei frame (mi auguro di no) nel vostro software e caricare una pagina proveniente da un diverso server, potreste incappare in problemi legati alle sessioni con Internet Explorer (brr).

Il problema è dovuto al fatto che IE, con il livello di sicurezza settato su “medio”, se riconosce che nella pagina stanno avvenendo caricamenti di pagine esterne, impedisce a queste ultime di settare dei cookies…e addio alle sessioni-

Dopo avere perso mezza giornata ho trovato questo vecchio post del 2005 che mi ha salvato. Il problema può essere risolto o aggiungendo il dominio in questione tra quelli “fidati” di IE oppure inviare un particolare header tramite php che faccia risultare la pagina come fidata. Quindi basta aggiungere

header('P3P: CP="CAO PSA OUR"');

All’inizio del vostro script e il problema è risolto.

Voglio cogliere l’occasione per ribadire quanto mi faccia schifo IE, come sia un browser progettato e realizzato male e vada contro ogni standard. Inoltre è la nemesi di ogni buon sviluppatore perché induce ad usare workaround e a sporcare il proprio codice.

Tags: > > > > >

13th
GEN

Come fare caching di immagini con jquery

1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...

Posted by raphe | Filed under Appunti, Programming

In giro per la rete è pieno di tutorial su come si possano cachare le immagini utilizzando javascript. Nessuno dei tutorial che ho letto in questi giorni però prende in considerazione il fatto che nel frattempo javascript e il web si siano evoluti e che quindi, con l’utilizzo di ajax, spesso si visualizzano porzioni di pagina, precedentemente visualizzate, senza effettuare il reload della pagina.

Perché questa introduzione? Perché proprio il caso sopra citato manda a farsi friggere tutti i metodi di caching classici.

Vediamo quindi come sfruttare jquery e il metodo load per generare un evento ogni volta che una immagine viene visualizzata.

(function($) {
var cache = [];
$.preLoadImages = function() {
var args_len = arguments.length;
for (var i = args_len; i--;) {
var cacheImage = document.createElement('img');
cacheImage.src = arguments[i];
cache.push(cacheImage);
}
}
})(jQuery)

Con questa prima funzione iniziamo la procedura di cache delle immagini. E’ importante notare che la variabile cache sia globale, questo permette che il garbage collection di alcuni browser non cancellino le variabili non utilizzate.

$("#loader").fadeIn();
var imgsNumber = 0;
$("#container img").each(function(){
jQuery.preLoadImages(this.src);
var img = new Image();
$(img).load(function(){
imgsNumber++;
if(imgsNumber == $("#container img").length){
imgsNumber = 0;
$("#loader").fadeOut("slow", function(){
$("#container").css("visibility", "visible").fadeIn();
});
}
}).attr("src",this.src);
});

Questa funzione è un po’ più complessa e funziona in questo modo:

  • mostra un loader (ovviamente il div #loader va sostituito con il vostro div);
  • imgsNumber conta il numero di immagini caricate (è essenziale per sapere quando sono tutte caricate);
  • il pezzo di codice successivo invece scorre tutte le immagini nel blocco #container e per ognuna di esse creiamo un oggeto img al quale assegniamo l’immagine. Questo è il passo essenziale per risolvere il problema di cui sopra visto che, in questo modo l’evento load verrà generato anche se l’immagine è già in cache. In questo modo si riesce a contare il numero di immagini caricate e mostrarle quando sono tutte pronte;
  • la parte finale (fadeOut e css) si occupano proprio di nascondere il loader e mostrare il div in questione;
  • la chiamata alla funzione attr si occupa infine di assegnare il path dell’immagine all’oggetto img temporaneamente creato.

Questo è quanto. Se avete dubbi chiedete nei commenti.

Tags: > > > >
Il contenuto di questo Blog è rilasciato sotto Licenza Creative Commons (Leggi)