Saludos!
Zaiden
El blog amigo del Nerd moderno
Lo prometido es deuda: dejo acá para que bajen los slides y ejemplos de las charlas que di en el CodeCamp 2010 junto a Rodolfo Finochietti y Ariel "Fuera de Pista" Krakovsky.
"Como hacer sitios a-la-Facebook con ASP.NET MVC": slides y ejemplos.
"Patos y abogados trabajando en paralelo" (Nuevos features de .NET 4 y C# 4): ejemplos y slides.
"ASP.NET MVC 2 (y 3!)": ejemplos y slides.
Hasta la próxima!
Zaiden
Les dejo para bajar los ejemplos de ASP.NET MVC, Comet y Razor que estuvimos mostrando en la charla del 11 de agosto con mis compañeros de Lagash Rodolfo Finochietti y Diego Gonzalez y Miguel Angel Saez por parte de Microsoft
Presentación: acá.
Ejemplos: acá.
Hasta la próxima!
Zaiden
Recientemente me topé con un pequeño problema al armar una consigna de un trabajo práctico del colegio: La idea era armar un helper para que los chicos puedan bajar facilmente archivos XML.
El problema fue que yo me encargaba de bajar el stream del archivo, lo retocaba un poco y luego lo pasaba desde un XDocument a un string utilizando un StringWriter, entonces al escribir el string, lo hacía agregando el header de XML de encoding="utf-16". Todo esto no sería un problema si no fuese porque, la idea detrás de esto era que asi como les llegaba el string, lo pudiesen guardar a disco con StreamWriter, utilizando los constructores mas simples, sin tener que especificar encodings.
Dado que StringWriter no permite modificar el encoding que utiliza, la solución fue crear una subclase de StringWriter y hacer override de la propiedad Encoding.
La pequeña clase quedó asi:
class UTF8StringWriter : StringWriter
{
public override System.Text.Encoding Encoding
{
get
{
return System.Text.Encoding.UTF8;
}
}
}
Espero que les sea útil!
Zaiden
Hace poco, por cierta necesidad me encontré con un error bastante extraño. Al intentar leer un XML con un XmlDocument obtenía el siguiente error: "Data at the root level is invalid. Line 1, position 1".
El string obtenido provenía de un stream, el cual se iba leyendo de a partes.
Luego de varias idas y vueltas, encontré finalmente la casua del problema: al escribirse el stream original, se estaba haciendo lo siguiente:
var writer = new StreamWriter(stream, Encoding.Unicode);
writer.Write(text);
El problema que traía esto es que, por la forma en la que se estaba leyendo el stream del otro lado (codigo externo, revisado gracias al amigo Lutz!) se estaba interpretando mal la marca de uso de Unicode, al comienzo del string.
Para poder solucionar esto, bastó con reemplazar las lineas en la que se crea y usa el StreamWriter, por la siguiente:
var writer = new StreamWriter(stream, new UnicodeEncoding(false, false));
writer.Write(text);
Esta forma de crear el encoding, le indica que no se deberá incluir la marca de Unicode al comienzo del string, solucionando el problema antes mencionado
Espero poder ayudar a alguien con esto.
Saludos!
Zaiden
Si tienen la suerte de tener que utilizar certificados con un template v3 desde Windows Vista o superior, y los mismos fueron emitidos por un Windows Server 2008 R2, se encontrarán con una feliz excepción (Invalid provider type specified.) al intentar obtener la propiedad PrivateKey de una instancia de X509Certificate.
Esto ocurre, como bien se explica en este post debido a que la forma en que Windows Vista y Seven almacenan este tipo de certificado - utilizando Microsoft Software Key Storage Provider - solamente está soportado por CryptoAPI, pero no por las librerías provistas por .NET Framework 4.0 o anterior.
La forma de solucionar esto es utilizando las librerías provistas por los amigos del equipo de CLR Security:
Zaiden
Acabo de leer este articulo en OSNews y quedé completamente indignado.
Como puede ser que haya gente cuyo único motivo para vivir sea molestar a otros porque tal o cual código fue creado bajo una licencia que - supuestamente - le da libertades, pero resulta que el programa o código no puede ser publicado en tal o cual lugar o, por ejemplo, no puede hacer linkeo a código propietario o - peor aún - otro código supuestamente tambien libre, pero con libertad distinta, por lo que por incompatibilidades de licencia no se pueden usar.
Estamos todos locos acaso???
Por este motivo decidí hacer explícito algo que di por sentado todo este tiempo con respecto al código publicado aca, y por el cual comenzaré a hacer campaña a favor:
Diga NO al uso de licencias como la GPL y SI a la WTFPL, también conocida como Do What The Fuck You Want To Public Licence (http://en.wikipedia.org/wiki/WTFPL)
Básicamente, esta licencia dice que cualquiera puede hacer lo que quiera con el código.
ESO es libertad.
Ma' que GPL ni ocho cuartos...
He dicho.
Zaiden
Después de unos seis meses de estar usando sin problema los auriculares con micrófono y "click-control" del iPhone, de un día para el otro dejaron de funcionar para atender llamadas y pasar los temas la iPod app.
Mucha gente me había comentado que después de un tiempo empezaron a tener este problema y como en nuestro amado país argentino - también conocido como La Porongonia Rebelde - los Apple Resellers no se pueden hacer cargo del service de los iPhones, ya que eso es tarea de la compañía de celulares que lo vendió, pero Claro insiste en que no pueden hacer nada, la gente en general decide que la "vida útil" del botón caducó.
Mentiras!
Resulta que el iPhone tiene su propio ombligo, y el mismo - como buen ombligo - se llena de pelusa.
Si llegan a tener este problema, existe una buena chance de que revolviendo con un clip por el agujero de los auriculares saquen una gran bola de mugre acumulada, la cual parece ser inofensiva para el uso normal de los auriculares y, sin embargo, letal para su boton mágico.
Bueno, espero que les sirva esto antes de ir corriendo a comprar auriculares nuevos.
Saludos!
Zaiden
El último lunes, junto a Rodo y Max, dimos la charla ".NET 4 a Fondo!" en el aula magna de la UAI, auspiciada por el MUG.
En la misma hicimos una repasada por las principales características de la próxima versión de .NET Framework, mostrando la versión RC de Visual Studio 2010 (la cual, debo decir, mejoró muchísimo desde las betas... sobre todo en la velocidad) y explicando con mas detenimiento las nuevas características relacionadas a programación dinámica dentro de C# 4, programación en paralelo y Code Contracts.
Aca les dejo los slides y ejemplos de la charla para bajarlos.
Saludos!
Zaiden