IIRF e IIS8: problema RedirectRule

Uso da molto tempo oramai la libreria Ionic’s ISAPI Rewrite Filter su IIS e lo trovo molto veloce ed intuitivo: mi permette di giocare con l’Url Rewriting su IIS senza alcun tipo di problema.

Ho scoperto con mio grande disappunto che la libreria, ferma con lo sviluppo da ormai molto tempo (2011…) e, tra l’altro, hostata su CodePlex che tra poco chiuderà i battenti, su IIS8 si comporta veramente male. Se su IIS7 e precedenti, il funzionamento era impeccabile, sul nuovo IIS8 impazzisce che è un piacere.

Tutta la parte di Rewrite funziona correttamente, ma quando si prova a lanciare una RedirectRule, il sito definito in IIS si schianta, senza tante possibilità di ritirarlo su, se non riavviando il server fisicamente. Un bel guaio.

Navigando qua e la ho trovato una fantastica risorsa che ha risolto questo annoso problema (ho provato innumerevoli tentativi, senza grandi risultati): la trovate qui.

Per comodità, onde evitare che la pagina di Nelson Pires scompaia, trovate la libreria disponibile anche qui: IIRF-2.1.2.4-x64_IIS8

Web Design: allineare un DIV in basso rispetto ad un altro DIV

Molti di noi, alle prese con i primi progetti di Web Design, si sono trovati ad affrontare l’annoso problema dell’allineamento degli oggetti dell’interfaccia.

Uno dei problemi più frequenti è quello di allineare un elemento, che può essere un titolo o una immagine, all’interno di un DIV.
Non vorrete mica ANCORA utilizzare le tabelle per le interfacce? VERO???

La cosa è più semplice di quello che sembra:

<div class="container">

<div class="obj">ciao</div>

</div>

Diamo una struttura al container:

.container{

width: 300px;
height: 300px;
position: relative;
border: 1px solid red;

}

Come vedete, è fondamentale settare come position:relative il container: in questa maniera comunichiamo che LUI è il riferimento dimensionale rispetto ad eventuali elementi absolute al suo interno.

Ora definiamo la regola CSS per il contenuto:

.obj{
width: 50px;
height: 50px;
background: blue;
position: absolute;
}

Come vedete, se definiamo come absolute il suo contenuto, possiamo farlo “fluttuare” all’interno del suo contenitore:relative. Comodo no?

Cosa manca?
Manca che non abbiamo indicato su quale bordo dovrà “appoggiarsi” il DIV.obj.
Aggiungiamo un bel bottom:0; right;10px;

.obj{
width: 50px;
height: 50px;
background: blue;
position: absolute;

bottom: 0;
right: 10px;

}

Fatto.
Un bel contenitore ed un oggetto allineato in basso a destra.
Ora potete tranquillamente inserire, all’interno del div.obj, testi e foto: rimarranno fantasticamente allineati come volete voi!

 

 

 

 

Browser che si schianta usando la tastiera? Trovato il colpevole

Dopo uno dei vari aggiornamenti di Windows 7 (ebbene si, resistere resistere resistere), ho riscontrato un fantastico baco: usando un qualsiasi browser, o Skype, non appena digitavo un qualsiasi pulsante della mia tastiera, l’applicazione si schiantava.

Ho aggiornato il driver della tastiera: niente.
Provato a vedere se il problema consiste nel Framework .NET o in qualcosa del genere: nulla.

L’unico aggiornamento che esulava dalle classiche patch di sicurezza era un aggiornamento driver Bluetooth: trovato l’arcano.

Il fantastico BTTray.exe tende ad aggiornarsi discretamente male, difatti tende a non sovrascrivere il vecchio driver: il risultato è l’avere due driver che si sovrappongono tra di loro, schiantando l’applicazione in questione.

Già eliminando dalle risorse in uso l’eseguibile BTTray.exe il problema si risolve.
Eliminate anche dagli eseguibili che partono all’avvio il suddetto eseguibile: il problema non si ripresenterà più.125423

CSV e MySQL: importare un file .csv in un db MySQL

Piccolo tutorial sull’uso del comando all’interno di MySQL.
Ho avuto la necessità di importare un file .csv, contenente una serie di destinazioni italiane, all’interno del mio db MySQL, dentro una tabella denominata tblcomuni.

La struttura della mia tabella

 

 

 

 

 

 

 

 

 

 

 

 

Posso fare tutto in maniera ultra rapida utilizzando il comando LOAD DATA INFILE.
Ho salvato il  mio file .csv in F:\, così da averlo a portata di mano nello script.
Dato il nome della tabella, TBLCOMUNI, e dato il nome del file, COMUNI.CSV, posso tranquillamente lanciare il seguente comando in MySQL:

LOAD DATA INFILE 'f:/comuni.csv' 
INTO TABLE tblcomuni
FIELDS TERMINATED BY ';' 
ENCLOSED BY ''
LINES TERMINATED BY '\n'
IGNORE 0 ROWS;

FIELDS TERMINATED BY ‘;’ mi indica il carattere divisorio tra un campo e l’altro
ENCLOSED BY ” mi aiuta se ho dei campi che sono tra doppi apici (ed in quel caso avrei dovuto scrivere ENCLOSED BY ‘”‘ )
LINES TERMINATED BY ‘\n’, chiaramente, indica che il record successivo è a capo
IGNORE 0 ROWS, ossia che non deve NON tenere conto di alcuna riga: in alcuni casi la prima riga è dedicata alle label dei campi ( Codice, Nome Comune, Provincia) e non abbiamo intenzione di aggiungerla in tabella.

Occhio che questo script funziona solamente per MySQL server locali, non remoti: in quel caso dobbiamo utilizzare il seguente comando:

LOAD DATA LOCAL INFILE 'f:/comuni.csv' 
INTO TABLE tblcomuni
FIELDS TERMINATED BY ';' 
ENCLOSED BY ''
LINES TERMINATED BY '\n'
IGNORE 0 ROWS;

Problemi con la cache di Facebook?

Vi sarà capitato moltissime volte di dover o voler postare un link ad una pagina o ad un articolo su Facebook, ed il più delle volte non avrete notato il fastidioso problema della cache del social network.

Se il link non fa parte di un vostro sito, ma di uno esterno, il problema non si pone, difficilmente avrete diretto accesso ai tag tipo title e description, ma nel momento in cui la pagina è vostra, o ne siete amministratore, beh, il discorso cambia eccome.

Nel mio caso l’obiettivo era pubblicizzare un articolo su un sito e-commerce di un cliente.
Ho postato il link e ho notato che i tag <title> e <description> erano terrificanti.
Procedo con la modifico dei suddetti tag, aggiorno la pagina, rivado in Facebook, posto nuovamente il link … e il risultato non cambia. Ma come è possibile? Da una parte l’HTML della pagina è perfetto, mentre Facebook mi ripropone i dati precedenti.

Chiaramente FB salva in memoria i dati relativi a quel link, proprio per evitare un eccessivo traffico verso altri siti. Il problema, però, persiste.

Ho notato che questo baco è facilmente aggirabile seguendo la seguente procedura.

E’ sufficiente collegarsi al link http://developers.facebook.com/tools/debug, inserire il link che volete postare su FB , attendere il caricamento dei dati ed il gioco è fatto.

Da questo momento, quando posterete nuovamente il link nella bacheca del Social Network di Mr.Zuckerberg, la cache sarà aggiornata all’ultima versione.

Questa procedura, tra le altre cose, può essere ripetuta N volte, poichè ogni volta verrà aggiornata la versione in memoria.