28 julio 2004

Nuevo libro

Ya me ha llegado el libro que compré en Amazon.co.uk, .Net Compact Framework Programming with C#. Es un buen manual técnico: claramente compartimentado, con buenos ejemplos de código, bastante completo y claro. Por supuesto, no me ha servido de mucho para lo que yo lo necesito, pero ése es el problema cuando uno se enfrenta a un problema muy específico y sólo tiene acceso a libros de carácter generalista. Por otra parte, gracias al libro he entrado en contacto con la lista de correo de Desarrolladores de Windows CE, en la que está el autor del libro, Paul Yao, que ha sido tan amable de contestarme a algunas preguntas.

En otro orden de cosas, me han aceptado el presupuesto de $250 para mi nuevo/viejo proyecto en RaC. Prometo postear imágenes de los formularios y algún truquejo que otro.

Y en cuanto al proyecto basado en PDAs para mi curro oficial, vamos avanzando. Sigo sin ser capaz de conectarme con una WAN, pero al menos he sido capaz de refinar las llamadas P/Invoke gracias a estos artículos (white papers) del MSDN (en inglés, claro):

An Introduction to P/Invoke and Marshaling on the Microsoft .NET Compact Framework

y

Advanced P/Invoke on the Microsoft .NET Compact Framework

Tremendos (y complicados) artículos que muestran cómo se deben pasar los tipos, cómo se deben declarar las variables y funciones no administradas, etc... En fin, todo lo necesario para acceder a la API de Windows CE .NET, que por desgracia es algo muy común. Y digo yo, ¿para qué se habrán preocupado de crear una versión Compact del .NET Framework si no tiene casi de nada?

Truco.- En el IDE de Visual Studio .NET, tanto el 2002 como el 2003, podéis hacer selecciones de texto rectangulares. Si mantenéis pulsada la tecla ALT mientras seleccionáis texto con el ratón, podéis seleccionar por áreas en lugar de por líneas.

24 julio 2004

Mi nuevo proyecto personal

Bueno, pues hoy comienzo nuevo proyecto para Rent a Coder. Se trata de la revisión de un viejo proyecto (viejo, heh. Es del año pasado) que hice para un cliente, sobre contabilidad para eBay.

Resulta que hay otro cliente al que le ha gustado y también lo quiere. Y aquí me enfrento al viejo conflicto, claro: ya he vendido ese código (aunque fuera por una mi*rda de dinero) y ya no es mío. Pero, ¿a quién le amarga un dulce?

Así que le he propuesto al cliente mejorar el software pasándolo a VB .NET, ya que estaba hecho en Visual Basic. Así aprovecho, le cambio el interfaz, le cambio todas las llamadas de ADO 2.6 por ADO .NET, y cambio de base de datos: de Access (puagh!) a MSDE.

El resultado: que es un programa nuevo, y que lo puedo vender sin problemas. Eso sí, ahora mismo entro en Rentacoder para pedirle al tío 200 pavos, mínimo, o no hay nada que hacer.

Ya veremos cómo va la cosa.

23 julio 2004

.NET Compact Framework...

... y la madre que la parió.

Resulta que mi nuevo proyecto, el que llevo desde el lunes, es un testing para convencer a un posible cliente de que las cosas que quiere hacer con una PDA se pueden hacer.

De lo que empiezo a no estar nada seguro.

Nuestro cliente quiere utilizar unas cuantas PDAs como los Los hombres de Harrelson utilizaban los M16: según iban haciendo cola para entrar en la furgoneta, cada cual cogía el que le tocaba. Es decir, que ninguna de las PDAs pertenecería a ninguno de los usuarios, sino que cualquiera de estos podría usar cualquiera de las PDAs.

Cuando uno de los usuarios ha cogido una PDA, debe logarse contra un dominio de red (al que la PDA accede mediante wireless, claro) con su nombre de usuario y contraseña, exactamente igual que haría si estuviera enfrente de su ordenador de sobremesa.

Todo muy bonito, pero choca frontalmente con la filosofía de diseño de una PDA: estos aparatos están pensados para que sean de un sólo usuario. Por lo tanto, en el Panel de Control de Windows CE; bajo la identificación de usuario se encuentra la identificación de red. Se supone que uno cambia estos settings cuando se compra la PDA y no los vuelve a cambiar; o si lo hace es de Pascuas a Ramos.

En resumidas cuentas, que tengo que hacer un pequeño form que permita a una PDA logarse contra un dominio LAN, especificando dominio, usuario y contraseña.

Y no hay manera.

Llevo desde el lunes dándome de cabezazos contra el escritorio (que empieza a combarse) y descubriendo que ni las PDAs ni el .NET Compact Framework están preparados para admitir autenticaciones de red NTLM, ni Kerberos, ni nada. Esto no quiere decir que no se pueda hacer lo que quiero, esto quiere decir que es complicado. En otras palabras, hay que tirar de API mediante llamadas P/Invoke.

Y la API, claro, está pobremente documentada. En este caso, el eufemismo quiere decir que la documentación es una p*ta mierda pinchada en un palo. Con deciros que me he tenido que descargar e instalar el Platform Builder de Microsoft (licencia de 120 días), los más de 700 megas que ocupa; sólo para encontrar un triste fichero (netui.h) y averiguar el valor de ciertas constantes del API.

Y todo esto, para que al final uno haga las llamadas y la única respuesta que recibe es un System.NotSupportedException, que traducido al cristiano estándar viene a ser algo así cómo: "Esta aplicación revienta pero no voy a decirte por qué, jódete y baila".

Me voy a hacer granjero, como Luke.

22 julio 2004

Empezamos bien

Primer artículo, y no tiene nada que ver con la informática, sino con los juegos de rol. Pero bueno, supongo que ya os iréis acostumbrando a la naturaleza multidisciplinar (toma ya!) de este blog.

Si jugáis a rol, sobre todo si jugáis (o habéis jugado) a D&D, clicad aquí:

The giant in the playground

Incluye un cómic llamado The order of the stick que es francamente divertido. No os arrepentiréis.

Mañana hablo de informática.

Prometido.

Pffff....