Pietro Toniolo

2006-10-12

Orologio del NIST

Filed under: Software — ptoniolo @ 19:52:57

Tutte le volte che devo regolare a mano il clock del PC vado a cercare il sito del Galileo Ferraris, ma è scomodo, e richiede un refresh manuale.

Ebbene, sul sito del NIST, ho trovato questa pagina per l’ora legale, estiva, e quest’altra per l’ora solare, quella invernale.

In pratica i parametri sono il codice della timezone, una lettera per dst o standard, le ore di delta e “java” perché esegua un applet con l’aggiornamento continuo, altrimenti dovete fare il refresh a mano, come con il Galileo Ferraris. Cambiando i parametri potete facilmente vedere le altre timezones.

Advertisements

Oracle DB: unique index su colonne nullable

Filed under: Oracle, Software — ptoniolo @ 19:49:21

Stavo verificando il comportamento di Oracle nel caso di unique indexes su colonne nullable, e finalmente ho capito qual è la logica. Io non la sapevo, e quindi vi rendo partecipi.

Questo brano viene dal Database Concepts della 9.2:

Indexes and Nulls
NULL values in indexes are considered to be distinct except when all the non-NULL values in two or more rows of an index are identical, in which case the rows are considered to be identical. Therefore, UNIQUE indexes prevent rows containing NULL values from being treated as identical.
This does not apply if there are no non-NULL values—in other words, if the rows are entirely NULL.

In pratica il senso è questo. Viene verificata l’unicità dei valori, considerando i valori NULL come veri valori, a meno che le colonne non siano tutte nulle, in tal caso l’unicità non viene verificata.

Un esempio è questo. Se si pone un indice unique su due colonne (a,b), ambedue nullabili, Oracle consente di inserire nella tabella tante righe (NULL,NULL), ma una sola riga (1,NULL).

In qualche modo, mi sembra che questo contrasti con il comportamento delle foreign keys composte da più colonne nullable. In quel caso, la validità della fk viene controllata solo quando tutte le colonne della fk sono non-nulle! Questo significa che se la fk è stato-provincia-città, ci si può mettere dentro ITALIA-BAVIERA-NULL anche se la combinazione ITALIA-BAVIERA non è presente in nessuna delle possibili combinazioni della pk cui si riferisce la fk. Questo comportamento non è molto intuitivo… tenetene conto!

2006-10-5

Firefox e Webdings

Filed under: Software — ptoniolo @ 15:59:04

L’altro giorno stavo cercando di fare una form d’esempio per una demo. Mi serviva visualizzare un prototipo di quello che chiamo N2M, cioè quelle form che consentono di scegliere un insieme di valori spostandoli tra due liste, a destra e a sinistra, con dei bottoni in mezzo, delle freccine.

La soluzione da cui ho preso il modello era stata implementata per Internet Explorer, e per le bitmap dei bottoni usava i caratteri 3,4,7,8 della fonte Windows Webdings. Sono dei triangoli come quelli dei tasti dei registratori, Play, FastForward, Rewind e, diciamo, Reverse. Comodo avere queste iconcine, bello. Peccato che con Firefox non vengano visualizzati, in nessun modo. Ho provato in tutti i modi, uno style inline, un CSS. Niente da fare. Al posto delle icone vedo sempre i numeri.

Dopo una faticosa ricerca, ho finalmente capito il problema. Firefox è molto W3C-compliant, e quindi il ragionamento che fa è questo: mi chiedi di visualizzare il carattere “8”, ma la fonte Webdings visualizza al posto del carattere “8” una bitmap FastForward, quindi non posso “rendere” il carattere in Webdings; quindi scalo alla fonte di seconda scelta, al limite uso il default.

L’unico modo per visualizzare dei caratteri è quello di recuperare il codice Unicode, ammesso che ci sia. In particolare, i triangolini sdraiati del Play e Reverse ci sono, si trovano tra le Geometrical Shapes dei Code Charts di Unicode, sono i caratteri U+25B6 (▶) e U+25C0 (◀); ma i triangoli doppi del FastForward e Rewind non sono stati messi da nessuna parte delle codifiche Unicode (perché poi…).

L’unico modo valido è quello di renderli come bitmap.

Ci sarebbe però uno sporco trucco, che non consiglio, ma che comunque consente di capire un po’ come funziona il motore di rendering di Firefox, Gecko. Il trucco è spiegato qui, fa riferimento a Mozilla ma si può adattare facilmente a Firefox. In pratica consiste nel dire a Firefox di rispettare il formato dei glifi per la fonte Webdings, aggiungendo la riga:
encoding.webdings.ttf = windows-1252
al file:
%FirefoxProgramFolder%\res\fonts\fontEncoding.properties
Dove %FirefoxProgramFolder% dovrebbe essere qualcosa come:
C:\Program Files\Mozilla Firefox oppure C:\Programmi\Mozilla Firefox

Ho provato, e l’effetto è quello. Ovviamente non è una soluzione portabile. Poi ho comunque rimesso le cose a posto…

Blog at WordPress.com.