Para tratar los proyectos que tenemos en Visual Studio debemos hacerlo desde la dirección del registro de windows HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\8.0\ProjectMRUList
2010/05/01
La lista de los proyectos en Visual Studio
2009/11/20
Sacar un XSD desde un XML
Pasar sacar un esquema inferido desde un archivo XML en .NET (C#), podemos hacer lo siguiente:
(Aplicación de consola)
XmlReader _reader = XmlReader.Create(_pathFicheroXML);
XmlSchemaSet _schemaSet = new XmlSchemaSet();
XmlSchemaInference _schema = new XmlSchemaInference();
_schemaSet = _schema.InferSchema(_reader);
foreach (XmlSchema _schemaObj in _schemaSet.Schemas())
{
_schemaObj.Write(Console.Out);
}
2009/11/18
El problema de mostrar los certificados del almacén CertificateAuthority
Si alguna vez habéis intentado sacar los certificados por almacén, es posible que hayáis tenido problemas al mostrar el almacén CertificateAuthority en concreto.
Para sacar el listado de certificados yo hacía lo siguiente:
private Array listaDeAlmacenes()
{
return Enum.GetNames(typeof(StoreName));
}
private IList certificadosPorAlmacen(string almacen)
{
IList listaCertf = new List();
try
{
X509Store store = new X509Store(almacen, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection collection = (X509Certificate2Collection)store.Certificates;
foreach (X509Certificate2 certificado in collection)
{
….. (etc)
listadeAlmacenes() devuelve en este caso, un array de strings de 8 elementos:
[0]: "AddressBook"
[1]: "AuthRoot"
[2]: "CertificateAuthority"
[3]: "Disallowed"
[4]: "My"
[5]: "Root"
[6]: "TrustedPeople"
[7]: "TrustedPublisher"
Cada una de estas cadenas se pasan al método certificadosPorAlmacén() y todo funciona bien exceptuando el caso de CertificateAuthority que no devolvía nada.
La solución la encontré rascando por internet y concretamente en: http://www.koders.com/csharp/fid7DCF8CE37E137FCC9549AD6DC0FCB4BEA690F50F.aspx
Este enlace nos lleva a la clase Mono.Security.X509 donde podemos ver el desarrollo que se ha hecho de la clase similar de Microsoft.
Este enlace nos lleva a la clase Mono.Security.X509 donde podemos ver el desarrollo que se ha hecho de la clase similar de Microsoft.
Me llamó la atención este método:
private static string StoreNameToString (StoreName sn)
{
switch (sn) {
case StoreName.CertificateAuthority:
return "CA";
default:
return sn.ToString ();
}
}
Pues bien, aquí está la solución: solamente hace falta cambiar el nombre de "CertificateAuthority" a "CA" para que funcione.
Sabiendo esto, cambié mi método de la siguiente forma:
private List listaDeAlmacenes()
{
List lista=new List();
foreach (string sn in Enum.GetNames(typeof(StoreName)))
{
lista.Add(sn);
}
//Aquí se realiza el cambio
lista[Array.IndexOf(lista.ToArray(), "CertificateAuthority")] = "CA";
/* También valdría:
*
lista = Enumerable.Union(
lista.Where(p => p != "CertificateAuthority"),
Enumerable.Repeat("CA", 1)).
ToList();
*/
/* Y también:
if (lista.Contains("CertificateAuthority"))
{
lista.Remove("CertificateAuthority");
lista.Add("CA");
}
*/
return lista;
}
2009/09/29
Número a literal en javascript
Hace tiempo estuve trabajando en una empresa que ofrecía sus servicios de programación a notarías.
Es bien sabido que en los documentos notariales toda cifra o número viene acompañado de su literal.
El programa original lo hice en lenguaje Fox y lo he reconvertido y reescrito en javascript para que pueda ser aprovechado en el mundo web.
Bien, para utilizarlo debemos incluir la librería aLiteral.js que está alojada en
var numeroLiteral = new aLiteral("23");
alert(numeroLiteral); // veintitrés
Un ejemplo más completo como pasar a literales el rango 0-100, podemos hacer lo siguiente:
function empieza()
{
for (var i=0; i<101; i++){
document.write(new aLiteral(i));
}
}
window.onload = empieza;
Cuyo resultado será:
Enlaces:
http://es.wikipedia.org/wiki/Nombres_de_los_n%C3%BAmeros_en_espa%C3%B1ol
Es bien sabido que en los documentos notariales toda cifra o número viene acompañado de su literal.
El programa original lo hice en lenguaje Fox y lo he reconvertido y reescrito en javascript para que pueda ser aprovechado en el mundo web.
Bien, para utilizarlo debemos incluir la librería aLiteral.js que está alojada en
https://github.com/17cosas/aLiteral.js , y crear un objeto aLiteral pasándole como argumento el número que queramos convertir, de esta forma:var numeroLiteral = new aLiteral("23");
alert(numeroLiteral); // veintitrés
Un ejemplo más completo como pasar a literales el rango 0-100, podemos hacer lo siguiente:
function empieza()
{
for (var i=0; i<101; i++){
document.write(new aLiteral(i));
}
}
window.onload = empieza;
Cuyo resultado será:
cero
uno
dos
tres
cuatro
cinco
seis
siete
ocho
nueve
diez
once
doce
trece
catorce
quince
dieciséis
diecisiete
dieciocho
diecinueve
veinte
veintiuno
veintidós
veintitrés
veinticuatro
veinticinco
veintiséis
veintisiete
veintiocho
veintinueve
treinta
treinta y uno
... etc (hasta 'cien')uno
dos
tres
cuatro
cinco
seis
siete
ocho
nueve
diez
once
doce
trece
catorce
quince
dieciséis
diecisiete
dieciocho
diecinueve
veinte
veintiuno
veintidós
veintitrés
veinticuatro
veinticinco
veintiséis
veintisiete
veintiocho
veintinueve
treinta
treinta y uno
Enlaces:
http://es.wikipedia.org/wiki/Nombres_de_los_n%C3%BAmeros_en_espa%C3%B1ol
2009/09/16
Primer libro sobre Flex 4 (Gumbo)
Peter Armstrong se ha puesto manos a la obra para escribir el primer libro sobre Flex 4 (a.k.a Gumbo): Hello! Flex 4.
De momento solamente podemos ver el primer capítulo que se ofrece gratuitamente: http://www.manning.com/armstrong3/armstronghello_meapch1.pdf
Su editorial es Manning y constará de 225 páginas.
Referencias:
http://www.manning.com/armstrong3/
http://www.manning.com/armstrong/
http://www.peterarmstrong.com/
De momento solamente podemos ver el primer capítulo que se ofrece gratuitamente: http://www.manning.com/armstrong3/armstronghello_meapch1.pdf
Su editorial es Manning y constará de 225 páginas.
Referencias:
http://www.manning.com/armstrong3/
http://www.manning.com/armstrong/
http://www.peterarmstrong.com/
Hola Mundo en Flex 4 (Gumbo)
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- holamundo.mxml -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/halo"
xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
<![CDATA[
private function muestraHola():void {
miTextArea.text="Hola Mundo!";
}
]]>
</fx:Script>
<s:Panel title="miPanel">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:TextArea id="miTextArea"/>
<s:Button label="Pulsa aquí" click="muestraHola();"/>
</s:Panel>
</s:Application>
Resultado:
Tendremos que seguir los mismos pasos que los descritos en: http://17cosas.blogspot.com/2009/09/hola-mundo-en-flex.html
exceptuando que el compilador Flex en este caso es de la version 4, alojado en http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4
Cabe resaltar los nuevos namespaces referentes a Halo y Spark:
* xmlns:fx="http://ns.adobe.com/mxml/2009" (MXML)
Este namespace incluye los elementos de alto nivel del lenguaje ActionScript como son Object, Number, Boolean, Array, etc. Para ver la lista completa de estos elementos, ver la referencia del lenguaje de Adobe en el apartado 'Top Level' (http://livedocs.adobe.com/flex/gumbo/langref/)
Este namespace también incluye las etiquetas que trata el compilador como
Este namespace no incluye los componentes Halo o Spark.
También podemos ver la lista completa de elementos que contiene este namespace declarados en el fichero incluído en el SDK en frameworks\mxml-2009-manifest.xml
* xmlns:mx="library://ns.adobe.com/flex/halo" (HALO)
Este namespace incluye todos los componentes de los paquetes mx.*, componentes gráficos (Flex charting components), y componentes de visualización de datos.
Para obtener una lista completa de estos componentes podemos obtenerla en el manifiesto ubicado en el mismo directorio del SDK, framework\halo-manifest.xml
* xmlns:s="library://ns.adobe.com/flex/spark" (SPARK)
Este namespace incluye todos los componentes de los paquetes spark.* y las clases de texto incluídas en los paquetes flashx.*
También incluye los componentes RPC, y las clases RPC necesarias para tratar con los componentes WebService, HTTPService y RemoteObject. Estas clases están incluídas en el namespace mx:, pero por conveniencia también se pueden usar con el namespace s:
La lista completa de estos elementos podemos encontralos en el manifiesto frameworks\spark-manifest.xml
Para saber más acerca de este nuevo framework remito a la información ofrecida por Adobe (http://livedocs.adobe.com/flex/gumbo/), aunque hay que recordar que está en beta y su contenido puede ser modificado.
Referencias:
http://www.ria212.com/node/9
http://opensource.adobe.com/wiki/display/flexsdk/Download+Flex+4
http://livedocs.adobe.com/flex/gumbo/
2009/09/13
Reloj con el tag html <canvas>
He estado probando esta nueva etiqueta html solamente implementada por el momento en los navegadores Firefox, Safari y Opera.
He creado un reloj analógico con 'milisegundero' opcional. Para usarlo incluir lo siguiente:
1) Añadir la librería javascript relojcanvas.js, situada en mi página personal GitHub https://github.com/17cosas/RelojCanvas
2) Añadir el tag html <canvas>, por ejemplo:
3) Crear un objeto con las diferentes opciones que permite la clase, por ejemplo:
El resultado es el siguiente:
He creado un reloj analógico con 'milisegundero' opcional. Para usarlo incluir lo siguiente:
1) Añadir la librería javascript relojcanvas.js, situada en mi página personal GitHub https://github.com/17cosas/RelojCanvas
2) Añadir el tag html <canvas>, por ejemplo:
<canvas height="200" id="micanvas" width="200" > Tu navegador no soporta el tag html <canvas></canvas>
3) Crear un objeto con las diferentes opciones que permite la clase, por ejemplo:
var reloj=new RelojCanvas({
id: 'micanvas',
radio: 90,
conSombra: true,
conMilisegs: true
});
reloj.start();El resultado es el siguiente:
Referencias:
http://canvaspaint.org/ (un buen ejemplo de lo que se puede conseguir con este tag)
http://www.xs4all.nl/~peterned/3d/ (y otro magnífico ejemplo de canvas en 3d)
Suscribirse a:
Entradas (Atom)
MsiInv o cómo obtener información del software instalado en tu ordenador (en Windows)
Pues como dice el título, si quieres saber realmente qué software tienes instalado en tu computadora con el sistema operativo Windows, recom...
-
Creando Objetos Un objeto en javascript es una coleccion no ordenada de propiedades, que puede incluir primitivas, otros objetos o funcion...
-
Pasos para hacer un Upload de 100 Megabytes bajo Nginx y ASP.NET Core 2 (y que no nos salga el error "413 Payload Too Large" (K...
-
Recibí este error al ejecutar una sentencia PDO bajo Propel y Symfony (en windows): Uncaught exception 'PDOException' with mes...
