2010-11-15

Material de la charla de Azure Worker Roles

A pesar de la tardanza, les dejo para bajar el material del bootcamp que dimos junto a mi baticompañero Rodolfo Finochietti sobre Azure Worker Roles.

Saludos!
Zaiden

2010-09-08

Ejemplos y slides del Codecamp 2010

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


2010-08-16

Ejemplos y presentación de la charla: NextWeb - La web está cambiando, ASP.NET también

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


2010-07-07

Nuevo chiche: iPad!

Después de estar todo un día jugando con este chiche nuevo, debo decir tres cosas:

1. Steve tenía razón, es mágico
2. Es increíble el esfruezo y dedicación que le pone la gente que hace toda la hackatoneria (Nota del autor: no se debe usar la palabra pirata en estos casos. Un pirata es un tipo que roba barcos, tiene loros y le falta una pata) para los iDevices. Pocas apps funcionan tan bien como las relacionadas con este mundillo!
3. Escribir en esta porquería es bastante mas cómodo de lo que pensaba!!

Hasta la próxima!
Zaiden

2010-06-23

StringWriter y con distintos Encodings

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


2010-06-21

Problemas al querer cargar un XML de un string Unicode

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


2010-06-07

Uso de certificados emitidos por Windows 2008 R2 desde .NET Framework

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:

  • Incluir "using Security.Cryptography.X509Certificates;" en el archivo que utilizará los certificados para traer los extension methods para la clase X509Certificate2
  • Preguntar por HasCngKey() en la instancia de X509Certificate2 para saber si la clave esta almacenada de esta forma. En caso afirmativo, crear una nueva instancia de RSACng utilizando el método GetCngPrivateKey() como parámetro.
Hasta la próxima!

Zaiden


2010-05-28

Indignado

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


Presentación de Visual Studio 2010

El jueves estuvimos haciendo la presentación de Visual Studio 2010 en el aula magna de la UAI junto con Rodolfo Finochietti, Martín Salías, Miguel Saez, Victor Passador y la gente del MUG

Dejo aca para que bajen la presentación y los ejemplos de código.

Saludos!
Zaiden

2010-04-11

iTip: Velocidad en el iPhone

Paso un pequeño tip para aumentar la velocidad general del iPhone (al menos, en el 3G). Vaciar de forma regular las llamadas y SMSs recientes.
Después de hacerlo pude notar una mejora considerable en la performance del teléfono.

Gracias Johnny por la data!

Zaiden

2010-03-22

Ya no funciona el boton de los auriculares del iPhone? No estés tan seguro...

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


2010-03-17

Slides de la charla: .NET 4 a Fondo!

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