|
\\ Home Page : Storico : Tips Sviluppo
Di seguito gli interventi pubblicati in questa sezione, in ordine cronologico.
Encoding
Una delle cose che viene sempre utilizzata quando si scrive un file, ma di cui si ha poca conoscenza è l’encoding.
Cos’è l’encoding?
E’ il modo in cui un simbolo (una lettera, un numero, una valuta) viene tradotto in bit. Oggi esiste una specifica standard de facto che associa ad un simbolo un codice numerico. Questa specifica si chiama Unicode. Essa non fa altro che definire un valore numerico ad ogni simbolo che può essere scritto (quindi comprende caratteri di tutte le lingue occidentali, simboli cinesi, cherokee, etc), ma non stabilisce come tale valore numerico venga salvato fisicamente. Qui entra in gioco l’encoding che consente alla forma numerica del simbolo di poter essere salvata. Gli encoding più noti “da queste parti” sono ISO-8859-1, ISO-8859-15 (aggiunge il simbolo dell’euro al 8859-1) e UTF-8. Essi differiscono per come i smboli vengono salvati su disco.
Perchè tutta sta menata?
Perchè sempre più spesso mi capita di dover progettare e gestire prodotti che gestiscono file xml e ogni tanto mi vengono presentati degli errori “misteriosi” che sono dovuti al fatto che chi ha prodotto i file non aveva gestito correttamente l’encoding.
Ecco un semplice caso:
<?xml version=”1.0″ encoding=”UTF-8″?>
<specialchars>àèìòù€</specialchars>
Ho riportato un file xml in cui si dichiara l’encoding UTF-8. Si salva il file e tutto dovrebbe essere a posto. Niente di più sbagliato. Non basta scrivere UTF-8 nel file affinchè questo possa essere salvato in tale formato, è necessario *effettuare* l’encoding nel formato specificato. La dichiarazione nel file XML dovrebbe essere il risultato di una operazione di encoding fatta in maniera cosciente. Altrimenti cosa succede?
Il file viene salvato con un encoding diverso e quando viene dato in mano ad un parser xml tutto fila liscio fina a che nel messaggio non compare qualche carattere strano (tipicamente quelli accentati), a quel punto il programma (Java in questo caso) ce lo segnala:
Exception in thread “main” org.dom4j.DocumentException: Error on line 3 of document file:///c:/temp/test_ISO8859-1.xml : Invalid byte 2 of 3-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 3-byte UTF-8 sequence.
at org.dom4j.io.SAXReader.read(SAXReader.java:482)
at org.dom4j.io.SAXReader.read(SAXReader.java:264)
at test.encoding.LoadAndParseXML.main(LoadAndParseXML.java:41)
Nested exception:
org.xml.sax.SAXParseException: Invalid byte 2 of 3-byte UTF-8 sequence.
Il messaggio, una volta capito il problema, è chiaro, abbiamo dichiarato un encoding UTF-8, ma il file aveva un encoding diverso che “si è rivelato” quando è comparso un carattere “strano”. Questa è la cosa che tra più in inganno chi scrive software, infatti il programma va quasi sempre e ogni tanto “si rompe”, come mai?
La ragione sta nel fatto che sia ISO-8859-1(5) che UTF-8 usano la stessa rappresentazione binaria per i caratteri ASCII (è una scelta voluta per ragioni di efficienza e compatibilità) per cui non c’è differenza fra l’encoding in UTF-8 e ISO-8859-1 per i caratteri più comunente utilizzati. La differenza sta nei caratteri accentati ed in quelle di altre lingue (es caratteri cirillici). Oggi tutte le librerie che gestiscono file xml gestiscono anche l’encoding, quindi se capita un errore del genere significa che con molta probabilità chi sintentizza il messaggio xml lo fa tramite concatenazione di stringhe (sigh).
Che differenza c’è fra ISO-8859-15 e UTF-8? il primo è in grado di rappresentare un set decisamente inferiore di caratteri in quanto può utilizzare solo un byte per rappresentare un simbolo, mentre UTF-8 ha una codifica con numero di byte variabile che può arrivare fino a 6. L’eccezione riportata prima era: Invalid byte 2 of 3-byte UTF-8 sequence confermando il fatto che il decoder UTF-8 stava esaminando un carattere rappresentato da 3 byte ed il secondo non era quello che si aspettava.
(p)Link - Commenti (0)
Storico
- Stampa
Popup Noiosi su VIsta e su XP (soprattutto Vista) - Tips su Vista
Security Popup Windows XP Sp2
Security Popup Windows Vista Sp2
Disabilitare lo User Account Protection in Windows Vista
Perchè Account Protection in Windows Vista
Inoltre qui sotto per impostare Vista nel modo WIndows Classico al quale tutti eravamo o siamo abituati
Windows Vista nel modo classico
Access Denied nelle cartelle "user" di WIndows Vista
Vista e SqlServer 2005
(p)Link - Commenti (0)
Storico
- Stampa
Installare XP su PackardBell MX52-B-066
|
Ci è voluta un pochino di pazienza ma alla fine tutto è andato per il meglio, sono riuscito ad installare un buon "vecchio" xp pro su un notebook PackardBell MX52 - B-066 Tralascio le indicazioni per creare una partizione, necessaria se si ha intenzione di mantentere entrambi i sistemi operativi. se avete intenzione di formattare ricordatevi di fare i dvd di backup e salvate anche la cartella "drivers" che è in c: Il problema principale, terminiata l''installazione è quello di cercare i drivers, perchè purtroppo il sito PackardBell non li fornisce. con sorpresa scopriamo che la webcam funziona senza installare nulla.. :) Per prima cosa installiamo i drivers video. per fare questo abbiamo necessità degli ultimi drivers forniti dalla amd-ati per xp, al momento sono i catalist 8.3 Purtroppo questi drivers non si installano se non apportiamo una piccola modifica, per problemi di natura "burocratica", per fare questa modifica è necessario scaricare il programma DH mobility all''indirizzo http://www.driverheaven.net/modtool.php ottenuti quindi entrambi i programmi, lanciamo l''installazione del drivers, che come prima cosa scompatterà tutto il contenuto del file in una cartella, di norma c:/ATI/SUPPORT/xxxxxxxxx. Quando farà partire l''installazione vera e propria clicchiamo su ANNULLA.\r\n A questo punto lanciamo il tool DH mobility, che ci chiederà semplicemente, in quale cartella sono stati scompattati i file del drivers, selezioniamo quindi c:/ATI/SUPPORT/xxxxxxxxx e proseguiamo.
Quando DH mobility avrà terminato il suo lavoro non ci resterà che procedere con la vera installazione del driver, cliccando sul file SETUP.EXE all''interno della cartella c:/ATI/SUPPORT/xxxxxxxxx.
Passiamo all''audio.
Consiglio di installare una patch microsoft prima del drivers vero e proprio. non ho fatto la prova ad installare solo il drivers, ma in altri casi ha dato problemi, quindi scaricate ed installate la patch da QUI
questo file zip pesa 50 MB solo perchè contiene le patch per tutte le lingue, se cercate il KB888111 su google potete scaricare solo quello per la nostra lingua.
possiamo quindi installare i drivers realteck scaricandoli da www.download.com all''indirizzo\r\n
AUDIO
na questo punto anche l''audio dovrebbe andare.\r\n
L''installazione della rete wireless è abbastanza lineare, perché basta scaricare il driver da QUI Terminata anche l''installazione della rete wireless restano solo 2 periferiche con il "punto escalamtivo giallo" con la dicitura "sistema di base" (o qualcosa del genere..non ho preso appunti durante il lavoro..) \r\n
per installare queste periferiche basta far cercare il drivers a windows all''interno della cartella "drivers" che avevamo precedente salvato. sono drivers per Vista ma in questo caso vanno altrettanto bene.
Una volta terminata l''intsallazione ci rendiamo conto che quelle "periferiche di base" altro non erano che il lettere di memory card...:)
Ora dovrebbe essere tutto funzionante (spero.....).
|
(p)Link - Commenti (0)
Storico
- Stampa
Asp.Net un semplice Login per il tuo sito
http://www.ondotnet.com/pub/a/dotnet/2003/01/06/formsauthp1.html
web.config
PAGE
<%@ Import Namespace="System.Web.Security " %>
(p)Link - Commenti (0)
Storico
- Stampa
DLL GacUtil and Reflector Shortcuts
from http://www.sharepointblogs.com/erickraus/archive/2007/10/04/dll-gacutil-and-reflector-shortcuts.aspx
It adds the gacutil.exe -i and Reflector.exe command to the right-click context menu.
Get Reflector.exe at: http://www.aisto.com/roeder/dotnet/
DLLShortcuts.reg (create in notepad and double click)
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\dllfile\Shell]
@="c:\\reflector\\reflector.exe "%1""
[HKEY_CLASSES_ROOT\dllfile\Shell\InstallGAC]
[HKEY_CLASSES_ROOT\dllfile\Shell\InstallGAC\command]
@="\"c:\\Program Files\\Microsoft Visual Studio 8\\SDK\\v2.0\\Bin\\gacutil.exe\" /i "%1""
[HKEY_CLASSES_ROOT\dllfile\Shell\Reflector]
[HKEY_CLASSES_ROOT\dllfile\Shell\Reflector\command]
@="c:\\reflector\\reflector.exe "%1""
But small addition: if you change @="c:\\reflector\\reflector.exe %1" to the @="c:\\reflector\\reflector.exe \"%1\"" it works for any paths because initial version doesn't work with path which contains spaces in the names
(p)Link - Commenti (0)
Storico
- Stampa
Defrag in Windows XP

La deframmentazione dei Volumi è l'operazione che permette di ottimizzare il posizionamento dei dati su hard disk, al fine di mantenere nel tempo elevate le prestazioni del computer.
In WindowsXP Andare in CMD e digitare:
defrag C: /F /V
per deframmentare l'unità C
(p)Link - Commenti (2)
Storico
- Stampa
Antivirus, gratis e buono

AVG Antivirus Gratis e Ottimo.
Migliore del Norton che è molto invasivo.
** SCARICA ANTIVIRUS **
In fondo alla pagina trovi il link per scaricarlo per sistemi Windows o Linux.
Installazione semplice.
La versione GRATIS ha l'unico neo che ogni settimana chiede l'aggiornamento, ma se avete l'ADSL sempre connessa fa tutto lui e non vi accorgerete di niente.
E per il programma HiJackThis, vedere su
http://www.ilsoftware.it/hijackthis.asp
(p)Link - Commenti (0)
Storico
- Stampa
Cosa è un CMS (Content Management System)?
Un sistema di gestione dei contenuti, o content management system (CMS) è un sistema usato per gestire dinamicamente i contenuti di un sito web. Tipicamente, un CMS consiste di due elementi: l'applicazione che gestisce i contenuti, o content management application (CMA) e l'applicazione che gestisce la distribuzione dei contenuti o content delivery application (CDA). L'elemento CMA permette al content manager o all'autore, che potrebbe non conoscere l'HTML, di gestire la creazione, la modifica e la rimozione di contenuti da un sito web senza aver bisogno delle conoscenze di un webmaster. Questa caratteristica è fondamentale in un CMS. L'elemento CDA utilizza e compila tali informazioni per aggiornare il sito Web. La caratteristiche di un sistema CMS varia da prodotto in prodotto, ma la maggior parte includono un sistema di pubblicazione basato su Web, una gestione dei formati dei documenti , dei controlli delle versioni, l'indicizzazione, la ricerca e meccanismi di recupero e backup. Il sistema di pubblicazione basato sul web permette alle persone di usare dei template (modelli) approvati dall' organizzazione, dei wizard ed altri strumenti per creare e modificare i contenuti del Web. Il sistema di gestione dei formati consente a documenti nei più svariati formati elettronici o anche scannerizzati di essere formattati in HTML o in PDF (Portable Document Format) per il sito Web. Il controllo delle versioni permette ai contenuti di essere aggiornati ad una nuova versione oppure di ripristinarne una precedente. Inoltre viene tenuta traccia di ogni cambiamento effettuato ai file da parte delle persone. Attraverso il sistema di ricerca gli utenti possono poi ricercare i dati usando parole chiave.
(p)Link - Commenti (0)
Storico
- Stampa
Descrizioni Errore Dettagliate su IIS
Spesso è volentieri quando si è alle prime armi con la programmazione in ambiente ASP ci si imbatte nel fatidico errore HTTP 500 internal server error.
Con questo messaggio il nostro server IIS, attraverso il browser, ci avvisa di un errore generato dalla pagina ASP in esecuzione. Però il messaggio di errore è poco chiaro e non specifica in dettaglio quale sia la causa scatenante.
Quindi per ottenere informazioni più dettagliate dobbiamo "addomesticare" il nostro browser, stiamo parlando di IE.
Per far ciò si deve seguire la seguente procedura: partendo dal menù orizzontale di IE, selezioniamo Strumenti > Opzioni Internet... > Avanzate scorriamo l'elenco proposto fino a giungere a Esplorazione sotto la voce Esplorazione cercare e deselezionare la voce Mostra messaggi di errore HTTP brevi
(p)Link - Commenti (0)
Storico
- Stampa
Pagine:
1
|