martedì 29 aprile 2008
Posto nel mio blog (perché così me lo ritrovo subito) un post (liberamente modificato) che mi è stato utile un paio di volte.
By default, Windows is caching Certificate Revocation Lists (CRL) and CA certificates to quickly verify certificate chains. The downside of this behavior is that a newer CRL is not picked up by the client until the locally cached CRL has expired.
Windows versions before Windows Vista do not support deletion or a forced update of the CRL cache.
You can view what is in your current CRL cache with the following command:
certutil -URLcache CRL
You can delete what is in your current CRL cache with the following command:
certutil -URLcache CRL delete
On Windows Vista, CAPI 2.0 has support to set a expiry date for the CRL and OCSP cache. You can use certutil to set a date and time when all cache entries become invalid. The following commands require administrative permission on the system.
To see when the cache was invalidated the last time, perform this command:
certutil –getreg chain\ChainCacheResyncFiletime
Note: If the ChainCacheResyncFiletime was never set manually before, the registry key does not exist and the following error message is shown:
CertUtil: -getreg command FAILED: 0x80070002 (WIN32: 2)
CertUtil: The system cannot find the file specified.
The error can be ignored because default CRL caching takes place in this case.
If the @now parameter is used, all cached entries are invalidated immediately.
certutil -setreg chain\ChainCacheResyncFiletime @now
To keep the cached entries for another 3 days and 6 hours, use this command:
certutil –setreg chain\ChainCacheResyncFiletime @now+3:6
To delete a registry value:
certutil –delreg chain\ChainCacheResyncFiletime
giovedì 17 aprile 2008
venerdì 11 aprile 2008
Faccio un po' di pubblicità per un evento organizzato dall'azienda per cui lavoro:
- è un evnto in cui si parla di Knowledge Management
- è organizzato in collaborazione con Microsoft
- è gratuito

giovedì 10 aprile 2008
Faccio un piacere ad un amico petulante ed invito i miei pochi lettori a compilare il sondaggio politico proposto da Romeo su facebook.
Nota: Romeo mi ha assicurato che, in accordo con le attuali normative in materia di par codiciio, il risultato del sondaggio sarà pubblicato solo dopo la conclusione delle votazioni.
mercoledì 2 aprile 2008
La trasformazione via codice di un file XML in HTML tramite file XSLT è molto semplice (cito liberamente da MSDN):
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")
Il codice riportato lavora su file fisici, messi da qualche parte.
Se però non si vuole sfruttare il file system, si può usare una funzione come la seguente, che consente di fare la trasformazione senza aver file fisici in gioco.
Function TransformXML(ByVal xDoc As Xml.XmlDocument, ByVal xsltText As String) As String
' Carica l'xslt
Dim xslt As New Xml.Xsl.XslCompiledTransform()
Dim xsltStringReader As New IO.StringReader(xsltText)
Dim xsltXmlReader As New Xml.XmlTextReader(xsltStringReader)
xslt.Load(xsltXmlReader)
' Crea il reader per l'XML in XDOC
Dim xDocStringReader As New IO.StringReader(xDoc.OuterXml)
Dim xDocXmlReader As New Xml.XmlTextReader(xDocStringReader)
' Crea il writer per l'html
Dim htmlStringBuilder As New Text.StringBuilder()
Dim htmlStringWriter As New IO.StringWriter(htmlStringBuilder)
Dim htmlXmlReaderWriter As New Xml.XmlTextWriter(htmlStringWriter)
' Esegue la trasformazione
xslt.Transform(xDocXmlReader, htmlXmlReaderWriter)
' Retuisce il contenuto html
Return htmlStringBuilder.ToString()
End Function
domenica 30 marzo 2008
Ogni tanto devo fare un po' di yoga per non maledire Vista...
Come sapete Vista nasce per memorizzare file musicali e video. Non va bene per chi deve sviluppare o scrivere documenti di testo o altre cose.
La dimostrazione di ciò è il fatto che per Vista tutte le cartelle contengono file musicali. E' facile capirlo, visto che in ogni cartella (anche se uno fa duitutto per dimostrare il contrario!) i dettagli dei file sono: il rating, l'artista, la lunghezza del brano, il produttore!
Per questo è utilie avere sempre sottomano il link al post di Marc Clifton in cui è descritto il meccanismo per ripristinare una view più utile (con i tanto sospirati campi "data modifica", "size", etc).
Qualcun'altro ha già fatto un post su UgiDotNet con la stessa citazione, ma lo faccio anch'io, così quando mi servirà di nuovo (e so che mi servirà, perché Vista è subdolo e malefico: 1, 2, 3, 4, ... ), non dovrò perdere tempo a cercarlo.
Folder View Settings
8/16/2007 3:19:05 PM
From CPian Anton Afanasyev:
On a side note, my main beef with Vista has been that it tends to "forget" the view settings that I set for folders, and keeps trying to guess them - which in turn shows me my folder full of code files with large thumbnails of them, and columns like "rating", "length", "artist", "year" and some such.
The fix?
delete the following registry keys, and then save the following as a .reg file and apply it to the system. Works like a charm.
Keys to delete:
HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags
HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\BagMRU
Add to the registry:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags]
[HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags\All Folders]
[HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags\All Folders\Shell]
"FolderType"="NotSpecified"
"SniffedFolderType"="NotSpecified"
[HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags\AllFolders]
[HKEY_CURRENT_USER\Software\Classes\LocalSettings\Software\Microsoft\Windows\Shell\Bags\AllFolders\Shell]
"FolderType"="NotSpecified"
"SniffedFolderType"="NotSpecified"
lunedì 17 marzo 2008
Se in un WebMethod si passa come parametro un oggetto complesso si può ottenere un errore del tipo:
System.Web.Services.Protocols.SoapException: System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> System.InvalidOperationException: There was an error generating the XML document. ---> System.InvalidOperationException: A circular reference was detected while serializing an object of type MyObjectType.
at System.Xml.Serialization.XmlSerializationWriter.Writ
martedì 11 marzo 2008
Facendo la build di un progetto di setup con VS2005 in un pc con Vista, potrebbe saltar fuori questo errore:
L'errore è questo:
0:Watson 1:1304 2:StreamSupportFiles
3:streamBinaryToDisk 4:5
5:t:\yukon\sql\setup\darwin\sqlcastub\streamca.cpp
6:238 7:sqlcastub 8:sqlrun.msi
Premendo OK ne compare un altro:
Error writing to file: Access is denied
Verify that you have access to that directory
Questo può succedere se si ha Vista, Visual Studio 2005 Professional ed SQL Server 2005 Developer.
Soluzione:
- Avviando VS2005 As Asdministrator non si ha l'errore
- Installando una versione successiva della dll mergemod.dll che pare essere la causa del problema (come suggeriscono qui): la versione successiva di quella DLL la si può ottenere installando Orca.
giovedì 21 febbraio 2008
Il componente PageSetupDialog ha un baco (noto) per cui se (nel computer) le impostazioni di misura sono quelle metriche i valori dei margini impostati vengono convertiti in pollici, e quindi diminuiti.
In pratica, se si esegue la ShowDialog del componente l'utente può imposta il valore 10 per il margine sinistro, preme ok e voi dalla vostra applicazione leggete che ha impostato 3,9!
Il problema è descritto nell'articolo: http://support.microsoft.com/?id=814355
Per ovviare a questo inconveniente possiamo modificare la chiamata alla ShowDialog del componente nel modo seguente:
1 Imports System.Drawing.Printing
2
3 Public Class Form1
4
5 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
6 Handles Button1.Click
7 ' Inizializza la proprietà PageSettings
8 Me.PageSetupDialog1.PageSettings = New PageSettings
9 ' Apre la finestra delle impostazioni della pagina
10 Me.PageSetupDialog1.ShowDialog(Me)
11 '============================================================
12 ' Commentare il seguente IF per vedere la differenza
13 '============================================================
14 ' Esegue la coversione se il sistema corrente è metrico
15 If System.Globalization.RegionInfo.CurrentRegion.IsMetric Then
16 Me.PageSetupDialog1.PageSettings.Margins = _
17 PrinterUnitConvert.Convert(Me.PageSetupDialog1.PageSettings.Margins, _
18 PrinterUnit.ThousandthsOfAnInch, PrinterUnit.HundredthsOfAMillimeter)
19 End If
20 ' Riapre la finestra delle impostazioni
21 Me.PageSetupDialog1.ShowDialog(Me)
22 End Sub
23
24 End Class
Ticketone lo conoscono tutti. E' una bella opportunità per acquistare i biglietti per un concerto stando comodamente seduto sulla propria poltrona.
Certo, comprare biglietti su internet è una bella comodità, un servizio, e come tutti i servizi si deve pagare per averlo.
Quindi ecco la mia opinione:
- Comprare 2 biglietti "prato" per il concerto di Vasco Rossi ad Ancona: Euro 80,50
- Comprarli dal sito di Ticketone: Euro 80,50 + 4,50* di spese di commissione
- Farseli mandare a casa perché altrimenti li devi ritirare un'ora prima dalla biglietteria dello stadio, e così tutti quelli che hanno il biglietto di passano avanti e tu ti vedi il concerto dal fondo fondo del prato: Altri euro 9,99*
- ...
- Dire "acciderbolina, un concerto che prima del 2002 mi costava 40.000 lire, adesso mi costa 40 euro e poi lo vado a comprare su internet, tutto automatico, dovrei risparmiare, e invece ci devo aggiungere altri 15 euro", ma poi decidersi a comprarli lo stesso perché pensi che è un bel concerto e poi la tua ragazza ci vuole andare a tutti i costi e anche tu ci vuoi andare e poi se non li prendi lei te la farà pagara cara, per cui premi OK e vai avanti e poi trovarti di fronte ad un contatore che dice: stiamo servendo l'utente 12 di 1526, attendere in linea per non perdere la priorità: Euro 0,00, ma una bella perdita di tempo ed un discreto nervoso...
- Lasciare perdere, suggerire a quelli che hanno fatto Ticketone di fare un bel viaggio in quel paese, cercare su internet un'altenativa, trovare il sito della ListTicket, vedere che puoi comprare i biglietti del concerto semplicemente alzando il tuo rispettoso fondoschena dal divano ed andando al tabacchi più vicino (fra quelli in cui è attivo un punto vendita ListTicket), pagare in contanti (NON RISCHIO NEPPURE CHE MI CLONINO LA CARTA DI CREDITO?) e pagarli (INCREDIBILE!) solo i classici euro 80,50 (che poi era il loro prezzo già comprensivo di prevendita), riceverli direttamente in mano (NESSUN CORRIERE? NESSUNA SPESA DI SPEDIZIONE?): Non ha prezzo!
Insomma a me questa ticketone non sembra un gran che! I biglietti dei concerti costano già da soli tantissimo, che dare soldi in più anche a Ticketone mi sembra uno spreco!
Quindi ecco un altro bel link alla LisTicket, che se lo merita!
* Cifra indicativa, perché quella vera non me la ricordo più...
Note: non ho azioni della LisTicket né ricevo percentuali, e neppure nella Lottomatica, e se qualcuno fra coloro che leggerà questo post ne ha nella ticketone sappia che la mia è solo un'opinione personale.