Blog by Arego

" Non smettere di cercare ciò che ami o finirai per amare ciò che trovi. "
      Anonimo
\\ 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 Storico  - Stampa
Di ringhio (del 07/01/2009 @ 22:45:01, in Tips Sviluppo, linkato 0 volte)

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 Storico  - Stampa

Di ringhio (del 09/09/2008 @ 16:39:01, in Tips Sviluppo, linkato 0 volte)

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 Storico  - Stampa

Di ringhio (del 05/09/2008 @ 10:34:12, in Tips Sviluppo, linkato 0 volte)

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 " %>

Login Page


Email:

Password:

Persistent Cookie:



(p)Link  - Commenti (0) Storico Storico  - Stampa

Di ringhio (del 10/03/2008 @ 19:43:10, in Tips Sviluppo, linkato 0 volte)

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 Storico  - Stampa

Di ringhio (del 07/02/2008 @ 20:58:14, in Tips Sviluppo, linkato 0 volte)

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 Storico  - Stampa
Di ringhio (del 08/05/2006 @ 15:03:39, in Tips Sviluppo, linkato 137 volte)

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 Storico  - Stampa
Di ringhio (del 03/03/2006 @ 12:59:43, in Tips Sviluppo, linkato 152 volte)

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 Storico  - Stampa

Di ringhio (del 13/05/2005 @ 14:38:35, in Tips Sviluppo, linkato 174 volte)

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 Storico  - Stampa
Di ringhio (del 26/04/2005 @ 15:52:56, in Tips Sviluppo, linkato 184 volte)


Pagine: 1

< settembre 2010 >
L
M
M
G
V
S
D
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Cerca per parola chiave  

Titolo

Consigli (14)
Controcorrente (48)
Spagna_Varie (2)
Tips Sviluppo (9)
Varie (13)
Viaggi (8)

Catalogati per mese:
Aprile 2005
Maggio 2005
Giugno 2005
Luglio 2005
Agosto 2005
Settembre 2005
Ottobre 2005
Novembre 2005
Dicembre 2005
Gennaio 2006
Febbraio 2006
Marzo 2006
Aprile 2006
Maggio 2006
Giugno 2006
Luglio 2006
Agosto 2006
Settembre 2006
Ottobre 2006
Novembre 2006
Dicembre 2006
Gennaio 2007
Febbraio 2007
Marzo 2007
Aprile 2007
Maggio 2007
Giugno 2007
Luglio 2007
Agosto 2007
Settembre 2007
Ottobre 2007
Novembre 2007
Dicembre 2007
Gennaio 2008
Febbraio 2008
Marzo 2008
Aprile 2008
Maggio 2008
Giugno 2008
Luglio 2008
Agosto 2008
Settembre 2008
Ottobre 2008
Novembre 2008
Dicembre 2008
Gennaio 2009
Febbraio 2009
Marzo 2009
Aprile 2009
Maggio 2009
Giugno 2009
Luglio 2009
Agosto 2009
Settembre 2009
Ottobre 2009
Novembre 2009
Dicembre 2009
Gennaio 2010
Febbraio 2010
Marzo 2010
Aprile 2010
Maggio 2010
Giugno 2010
Luglio 2010
Agosto 2010

Titolo

Viaggi
SienaHoliday - Zingarate - Rumbo - Volagratis - Hostelworld
Blog che leggo
SensoDellaMisura - noisefromamerika - BeppeGrillo - ZeusTech - D.Luttazzi - comesefosseantani
Siti interessanti
Terrelibere - MassimoFini- Democrazia - businessonline - PuntoInformatico - IkaroNet
Amiciiiiii
Turrismo - Liline75 - Erasmus97-98 - Mangiare a Bratislava - il BLOG di OLMO

Titolo

Autore - Copyright ©

Titolo




Feed XML RSS 0.91
powered by Dandueb with dBlog 1.4 ® Open Source