jueves, agosto 10, 2006

Todo cambia... ¿para bien?

Primero fue que Apple cambiaba a procesadores Intel, luego que Java se licenciaba como Open Source, ahora es que Microsoft tiene un laboratorio de Open Source. Se va a acabar el mundo.

La semana pasada tuvo lugar el evento Lang.NET Symposium 2006. Un foro auspiciado por Microsoft para conocer acerca de diseño de lenguajes, implementación de compiladores y construcción de herramientas enfocadas a la plataforma de código administrado (léase .NET).

Obviamente hubo participación de gente de Microsoft: Anders Hejlsberg, Paul Vick y Mike Barnett entre otros. Obviamente estuvo Miguel de Icaza y curiosamente los tres personajes más influyentes en la integración de .NET y Ruby: Wilco Bauwer, John Lam y John Gough.

De esta mezcolanza de filosofías, implementaciones y lenguajes, John Lam fue entrevistado por Sam Ramji quién participa en el Laboratorio de Open Source que incluso tiene su portal propio: Port 25. Ahí encontrarán la serie de entrevistas que hicieron a John Lam y John Gough. Interesante lugar éste de Portal 25. Incluso tiene una sección de podcasts y se ve que la comunidad está creciendo rapidamente.

En lo particular me da gusto ver esta apertura por parte Microsoft si bien seguramente tiene un trasfondo más comercial que colaborativo, este enfoque es mucho mejor y más pasable que aquellos infames documentos Halloween.

Finito.

domingo, agosto 06, 2006

Más acerca de las iluminaciones...

En continuación al comentario de Miguel de Icaza relacionado con WPF/Avalon, en su blog aparecen referencias a un par de blogs, ambos de ex-empleados de Microsoft en el que comentan acerca de esta relación odio-amor.

De inicio encontramos el blog de Wesner Moise, que trabajaba en el equipo de desarrollo de Excel y ahora dedica su tiempo a su start-up en Inteligencia Artificial. En este post Wesner transcribe una charla con Miguel en relación al tema e introduce el comentario acerca de los lectores de blogs. Por otra parte encontramos a Joe Beda, actual empleado de Google y ex-empleado de Microsoft donde trabajaba directamente en el equipo de Avalon. De su post, dos frases me impactan de sobremanera (otra vez traducción libre asistida por WordLingo):

  • Un ciclo de entrega de más de cinco años no puede verse más que como la señal de que algo está horriblemente mal.

  • Cuando estaba en [el equipo de] Avalon hablábamos acerca de construir el API por los siguientes 10 años.



¿Por qué mi insistencia acerca de ser más críticos con la oferta de Microsoft? La primera vez que escribí sobre esto fue en Febrero de 2005, tienen la liga para una lectura más detallada pero incluyo lo que creó que es el punto más importante:
Estamos a meses de que se libere una nueva versión del .NET Framework, hasta donde he visto, vienen algunos cambios radicales. Lo importante es que seamos capaces de tener una actitud crítica y objetiva acerca de esta nueva oferta de herramientas de trabajo. ¿Realmente nos hace más productivos? ¿La manera como nos guían nos lleva a mejores resultados? ¿Ganan ellos y ganamos nosotros? ¿o se trata de otra relación histórica del ganador y el perdedor?


Si bien suena muy agresivo, no debemos de bajar el nivel de cuestionamiento. A la fecha ya se han detallado más las nuevas API's y hasta donde conozco las otras (Windows Communication Foundation/Indigo y Windows Workflow Foundation) me parece que han hecho un esfuerzo real, valioso, productivo para incluir lo que realmente se está necesitando en el ámbito de interoperabilidad y colaboración. Sin embargo en lo relacionado a presentación, WPF/Avalon no es lo que necesitamos.

¿Qué necesitamos entonces? Herramientas que nos hagan más productivos y que estén al alcance de la mayoría de los desarrolladores, económicamente y conceptualmente. No más gurús y sabihondos de "manual" o privilegiados comerciales. No más sesiones específicas de capacitación. No más .....

Hace varios años aparecía en DDJ un anunció de un producto "X" que decía más o menos lo siguiente:
Me pagan por desarrollar aplicaciones, ahora con [Producto X] gano el doble.

El fondo del anuncio era que el Producto X conseguía duplicar la productividad del desarrollador, de ahí el aumento en su ingreso. Me gusta mi trabajo y de igual manera busco como aumentar mis ingresos o el tiempo que paso con mi familia o alguno de mis intereses. ¿WPF/Avalon conseguirá aumentar mi productividad?

Finito.

jueves, agosto 03, 2006

Acerca de iluminaciones...

Miguel de Icaza publicó hace unos días en su blog este pensamiento acerca de Avalon, ahora Windows Presentation Foundation. Estas son sus palabras en una libre traducción asistido por WordLingo:

Acabo de tener una realización hoy.
Avalon de Microsoft es el J2EE de GUI APIs.
Es la manera de Dios de castigarnos por substituir los diez mandamientos por el capricho del patrón del diseño.
Tendremos que esperar un par de los años por herramientas “Rails”. Los programadores mientras tanto pagarán sus pecados.
Avalon marca el final del sueño americano.



Si bien WPF no es mi interés ni mi fuerte, hace un par de semanas leí el libro Professional WinFX Beta y desde antes, al revisar los primeras entregas de Avalon siempre pensé que no parece ni remotamente sencillo. ¿Dónde quedó el clásico Hola Mundo? Esa introducción sobre simplificada a un lenguaje de programación.

Miguel hace una equivalencia directa con J2EE, la especificación "empresarial" de tecnologías Java. J2EE es una bestia inmensa que puso fuera del alcance de la gente la programación Java. Solo unos cuantos iniciados y gurús fueron capaces de entender los intrincados hilos, tejes y manejes de toda la parafernalia de acrónimos que se crearon con J2EE. Tal es el tamaño de la bestia que la comunidad Open Source se embarcó en una guerra no declarada para crear herramientas que cumplieran con el principio KISS y devolvieran el control a los buenos desarrolladores.

¿Pasará lo mismo con las nuevas API's de Microsoft? ¿Será el llamado a la comunidad de desarrolladores para concientizarnos y ser críticos de las nuevas ofertas de Microsoft? No podemos ser simples consumidores. Debemos esforzarnos en reconocer lo bueno de ésta oferta, por que sí lo hay, pero también ser críticos y levantar la mano donde realmente no estén facilitándonos la vida.

En la comunidad Open Source nacen pocas, pero significativas innovaciones. Sin embargo la tecnología se refina de una manera inimaginable gracias a la participación de varios individuos de todas latitudes. Mientras más se comparte, mejores resultados se obtienen.

Finito.

lunes, julio 31, 2006

Descarga gratuitamente MSDN Library Mayo 2006

Gracias a Firedancer me acabo de enterar que la MSDN Library se puede descargar gratuitamente.

Esta es la versión que se puede instalar directamente en la PC y consultar cuando lo desees, entre los detalles más novedosos se incluyen lo siguiente:
  • Visual Studio 2005 Team Foundation Server
  • SQL Server 2005
  • Microsoft Knowledge Base
  • Internet Information Server SDK
  • Internet Security and Acceleration SDK
  • ... y más!

Siempre es bueno tener a la mano la Library instalada, especialmente cuando no tienes acceso a internet o éste es limitado.

Finito.

domingo, julio 30, 2006

Liberada la Web Service Software Factory

Tom Hollander en su blog ha anunciado la liberación de la Web Service Software Factory. Este producto como los anteriores, implementa el concepto de fábrica de software en el ambiente de Visual Studio, mediante el cual se proporciona a los participantes del equipo de desarrollo secuencias de acción, recetas y elementos que automatizan en parte el desarrollo de un componente específico aumentando así la productividad y la calidad del resultado final.

A diferencia de las anteriores entregas, Smart Client y Mobile Client, esta fábrica esta circunscrita precisamente a Web Services, un elemento más familiar que permite desplazar el foco de atención al funcionamiento mismo de la fábrica.

Indudablemente este concepto de producción masiva automatizada requiere de más estudio para conseguir aprovechar los beneficios que pregona y sobre todo de conseguir la personalización para cada usuario y/o proyecto en el que se utilice, así que he de dedicar algunas horas a conocer más y probar profundamente esta entrega.

Finito.

sábado, julio 29, 2006

Reunión Mensual de la Comunidad .NET en el DF

Ayer tuve el gusto de volver a estar en la reunión mensual de la Comunidad .NET del DF a la cual ya tenía un tiempo de no asistir. Lamentablemente llegué solamente a la última exposición a cargo de Octavio Telis que tocó el tema de los valores anulables en .NET 2.0.

Sin embargo lo mejor estaba por venir. En la agenda publicada figuraba el nombre de Raúl Guerrero que inmediatamente me sonó familiar debido a las participaciones en los podcasts de Carlos Madrigal. Me entró la inquietud de conocer a la persona detrás de los comentarios así que al final de la reunión me acerque y me presenté directamente con Raúl. Grande fue su sorpresa y alegría al enterarse de que soy podescucha de Carlos y de él mismo. Y comentamos varias cosas hasta que tuve que despedirme. También para mí fue muy grato conocerlo y ver que si importa la retroalimentación de parte de los lectores y podescuchas de esos esfuerzos.

Hace un momento, leyendo los mensajes del día de la lista de Mono Hispano visité una de las ligas en la firma de los mensajes y grande fue mi sorpresa al encontrar que Iver también es podescucha de Pozo Técnico y SuperNeurona.

De aquí la reflexión de lo importante que son estos esfuerzos de compartir conocimiento y experiencias en tu idioma y además de una manera tan amena. Reciban desde aquí un caluroso abrazo y felicitación.

Finito.

lunes, julio 17, 2006

Laboratorios Prácticos

Desde la semana pasada he estado ejercitándome con los Hands On Labs del Composite UI Application Block. El mecanismo se me hace mmmuuuyyy chido, eso de la guía paso-por-paso y que te vas pa'trás, pa'delante y así te mueves, con soluciones preconstruidas donde vas agregando código que viene en la guía.
Es similar a lo que se usan en los cursos de certificación pero con esteroides.
En particular este conjunto de laboratios se enfocan al CAB, que es uno de los Application Blocks más esotéricos que han liberado (a mi gusto). Te presenta varios temas, desde los WorkItems pasando por la distribución ClickOnce hasta extender el mismo CAB.
A lo largo de los laboratorios es notable el uso de la técnica IoC/DI tan famosa ultimamente. En el caso de .NET la mayor parte se hace decorando mediante atributos los objetos que participan en la DI. En el fondo... muy en el fondo se encuentra ObjectBuilder, el componente que se encarga de hacer posible la DI y que también se usa en la Enterprise Library.

Notas acerca de PartnerApi

Hace algunos posts publiqué que estaba construyendo un API para encapsular las llamadas a las funciones del API de AppExchange. He tenido algunos lentos pero seguros progresos y ya conseguí devolver una lista de objetos encapsulando la llamada al método query() de AppExchange. Ahora estoy planeando los siguientes métodos para completar el conjunto de operaciones ABC (Alta, Baja, Cambios) en PartnerApi.

Estas son las firmas de los métodos que se van a implementar:

  • Insert(sObject) => (1)
  • Insert(IList sObjects) => (m)
  • Update(sObject) => (1) update by Id
  • Update(IList sObjects) => (m) update by Id
  • Delete(sObject) => (1) delete by Id
  • Delete(criteria) => (0..m) delete by condition
  • Delete(IList sObjects) => (m) delete by Id

La idea es tener siempre una versión que afecta un solo objeto (1) y la versión que afecta varios objetos (m). En las operaciones de Update y Delete es obvio que se puede establecer una relación directa con el objeto que se va afectar mediante el uso de Id. En el caso de la operación Delete se añade el caso adicional donde especificamos la condición que debe cumplirse para eliminar el objeto de la BD de AppExchange.

También falta por construir un método de conversión de un PartnerApi.sObject a un AppExchange.sObject. Es decir, se consulta a AppExchange y nos devuelve una colección de sObjects en su formato nativo. En PartnerApi se expone una clase que encapsula de una manera más natural los atributos de la clase y ahora se requiere un método que la regrese a su formato original, algo así como AppExchange.sObject => PartnerApi.sObject => AppExchange.sObject en donde cada => se debe entender como conversión.

Finito.

viernes, julio 14, 2006

¡Microsoft Virtual PC ahora es gratis!

Con el asunto de WinFx, ahora .NET 3.0, el Beta 2 de Vista y demás ejercicios de avanzada que demandan equipos para instalaciones, equipos que no están disponibles la única opción viable es la virtualización.

En una máquina virtual tu puedes hacer y deshacer pagando una pequeña penalidad de desempeño. La instalación no te la quitas de encima y si estás instalando alguna versión de Windows, todas las actualizaciones a la fecha. Pero al final tienes un ambiente para ejecutar todos las liberaciones Betas sin preocupaciones ni conflictos.

La principal oferta en este aspecto la venía haciendo VMWare, que ofrece toda una línea de productos orientada a la virtualización de equipos soportando una variedad de sistemas operativos (Windows, Linux, Solaris, Vista). Y hace medio año aproximadamente, lanzaron un producto, VM Player para simplemente ejecutar máquinas virtuales creadas con cualquiera de sus productos. En el ambiente Open Source también se ha apostado de alguna manera por este concepto y ofrecen (Fedora/RH en particular) un kernel llamado Xen que muchos critican por que no una virtualización total.

A todo esto, Microsoft tambien le entró a la onda de la virtualización adquiriendo una compañia, raro ¿no?, que se estaba abriendo paso y con los fondos virtualmente ilimitados de Redmond terminó convirtiendos en Virtual PC junto con su hermano mayor Virtual Server. El éxito del producto fue moderado aunque puedes ver a la maoyría de los expositores Microsoft hacer uso de este producto en sus demostraciones y exposiciones.

Realmente es genial poder encender una máquina de pruebas juguetear (thinker around) en nuevas herramientas y sistemas operativos sin tener que darle en la torre a tu equipo de todos los días. Adios a los temores de las BSOD, a los reformateos y conflictos en las instalaciones.

En lo particular he disfrutado más de VMWare. Se me hace más maduro, eficiente y portable. También he probado VPC y ahora con la característica de gratis va a inundar el mercado. VPC es lento, no es tan portable (cuando me refiero a portable se trata de lo siguiente. Crea una máquina virtual en la oficina, aprovechando la banda ancha descarga y aplica todos las actualizaciones. Copia esa VM a tu disco duro externo, llegas a casa, arrancas tu VPC y ¡nada! no funciona, cosa que no sucede con las VM de VMWare) pero es gratis. ja.

¿Quién podrá explicar como es que con la piratería, las demandas y las multas de la UE, Microsoft se da el lujo de tomar este tipo de decisiones?

Finito.

miércoles, julio 12, 2006

López vs. López

Hace unos momentos en el noticiero de la noche, López Obrador estuvo con el anfitrión, López Doriga.

Desde el inicio del programa se tocaron las notas del día relativas al inconcluso proceso electoral. Una nota muy personal, con nombre y cara fue la relacionada con el supuesto embarazo de urnas electorales en Salamanca, Guanajuato. El presidente de la casilla, estudiante de ingeniería y maestro de secundaria, rechazó categoricamente que el hecho tuviera el sentido que le ha querido dar el equipo de López Obrador. La representante de la Coalición por el Bien de Todos resumió en una frase su posición: "Si hubiera estado mal no hubiera firmado". Más adelante AMLO declara que si fue posible comprar votos, seguramente fue posible comprar representantes.

Ya en el enfrentamiento, López vs. López, López Doriga "El Teacher" lanzó el primer jab con una sección de la visita de AMLO al estudio en el cual declaró categoricamente que sería respetuoso del resultado de la elección. Del dicho al hecho, hay una respuesta digna de los mejores púgiles: "Voy a respetar la democracia y el 2 de julio no hubo democracia". Palabras más, palabras menos. Señala una vez más que fue una elección de estado, que si bien hubo una extensa participación ciudadana, también se aplicaron los métodos de la vieja escuela para revertir los resultados de la elección que declarar convencido haber ganado. "Gané y es mi palabra".

"El Teacher" siguió aplicando ataques a las zonas sensibles sin conseguir mucho éxito. AMLO dió muestra de la experiencia y tozudez propia de su estirpe. Una de las partes que más dió emoción al encuentro, fue la sútil descalificación, impropia de AMLO, de López Doriga. "Tu opinión es muy respetada pero no la comparto". En otras palabras: nada de lo que digas importa, sé que vas a tirarme a matar y no me voy a dejar.

El segundo revolcón lo consiguió AMLO al replicar sobre el asunto de la casilla de Salamanca. "Cualquiera que ha sido funcionario de casilla..." fue el inicio de la réplica de López Obrador. López Doriga solo pudo esquivar saltando al tema de la impugnación en el cual por más que "El Teacher" se lanzó a matar, AMLO se aperró, perdón, aferró a que no pretende invalidar la elección. No soy abogado y este es una de los momentos que quisiera serlo.

El cierre fue una pregunta directa: "¿respetará López Obrador el veredicto del TRIFE cuando ya anteriormente se comprometió a acatar el resultado del IFE y no lo hizo?". Dice que sí. Yo no le creo.

Finito.

jueves, julio 06, 2006

La victoria de la derecha

Se terminó finalmente el conteo de las actas en los Distritos Electorales y resulta que el candidato de derecha, Felipe Calderón consigue llevarse por un mínimo margen la mayoría quedando en segundo lugar el candidato de la izquierda Andrés Manuel López Obrador.

Este conteo, al contrario de lo que la mayoría cree, es el proceso formal y previsto para determinar el número de votos otorgados a cada candidato. No es el resultado de atender ninguna petición, ningún reclamo. El siguiente paso es entregar los resultados obtenidos al Tribunal Electoral para que sea éste órgano el encargado de otorgar la constancia de mayoría al candidato ganador.

Es ilusorio pensar que al ir corroborando las cuentas no se fue haciendo la suma de los votos. Tal es que tenemos al resultado previo, no oficial, que nos señala lo que ya conocíamos pero que la oposición se ha pertrechado en desconocer. La victoria de la derecha. Sin embargo en un afán incongruente con lo manifestado anteriormente, la izquierda pretende impugnar el resultado del conteo. Están en su derecho aunque definitivamente lo están haciendo con el mínimo de responsabilidad.

AMLO ya ha convocado a un mitín el próximo sábado ¿para qué? Es imposible descifrar el motivo de fondo. Lo único que consigue es agitar el polarizado entorno existente y confundir al mal informado (al fin y al cabo, mayormente hijos de López Obrador) pueblo mexicano. Le encantan los escenarios al Sr. López Obrador, mejor debiera ser conductor o actor.

Esperemos a ver cuales son en detalle las denuncias que van a realizar. Seguramente proporcionarán un gran tramo de tela donde cortar.

Finito.

miércoles, julio 05, 2006

¡Ya'stuvo! ¡Ya'stuvo!

Por fin quedó la instalación de Team Foundation Server en el servidor de pruebas. Incluso ya instalé Team Explorer en mi PC. Bien chido.

Ya cree mi primer Team Project con la plantilla MSF Agile y me creó el bonche de WorkItems... solo falta que recuerde que sigue... a revisar los apuntes del Workshop que tomamos a principio de año con el buen Beto Borbolla.

Después de esto, me tomé un momento de relax viendo los anuncios de Apple. Si bien toda la vida (laboral) he usado PC con algún SO de Microsoft, también he visto como han ido desfilando las diferentes variedades de equipos de Apple, algo que siempre han tenido en común ha sido el magnífico diseño. Los únicos que se han esforzado para aplicar algo de diseño ha sido Sony con su línea Vaio. De ahi en fuera pura consumer design.

En otros temas, sigue el conteo en los Distritos Electorales. En este recuento sigue llevando la delantera el candidote AMLO. Sin embargo la fuente que consulto bien claro agrega la siguiente leyenda:

Es necesario subrayar que los resultados pueden cambiar en cualquier momento y que por tanto no marcan ninguna tendencia.

¿Esperan acaso un milagro? ¿o están planeando alguna táctica descontadora? En lo particular no me agrada en lo más mínimo ver que AMLO llega a la presidencia. Ahora todas las víctimas del sistema van a reclamar lo que les corresponde por su condición ¿? No sabía que tener la desgracia de carecer de recursos te hace dueño de los beneficios que creamos una mediana parte de la sociedad. Deja me declaro en bancarrota y me convierto en un desprotegido hijo de López Obrador.

Finito.

Puras fallas

Sigo con el ejercicio de instalar VSTS no sin algunos desaciertos. Hoy impetuosamente me decidí a terminar la instalación y agarré mi disquito y me senté. Embriagado de contento inicié el clásico next, next, next para encontrar con el primer error: SQL Server no tenía activado el acceso a conexiones TCP/IP ¿¿¿??? ¿qué pex?

En el mismo impetuosismo, instalé originalmente una versión de evaluación de SQL Server 2005, así que asumo que por su naturaleza no debieras usarlo como se debe usar y pues viene con esa característica desactivada. No problema. Vas al SQL Server Configuration Manager y le aplicas el cambio.

Agarras el mouse y empiezas de nuevo: next, next, next... ¿y qué crees? ¡nnnoo! pus si... Otro error :-( Ahora resulta que el collation no era el correcto. Bien dicen RTFM pero no, ahí vas con el "next, next, next". Pues resulta que debes tomar en cuenta lo siguiente para seleccionar el correcto collation (son puros "no's"):

  • No soporta Accent Insensitive
  • No soporta Binary ni Binary2
  • No soporta Case Sensitive

Bueno, entonces ¿qué si soporta? Case Insensitive + Accent Sensitive y por si las moscas, púchale los check boxes pa'que soporte Hiragana/Katakana.

Pero lo tenía incorrecto, ¿cómo lo configuro al correcto? No pus ya te fregaste.... Bueno al menos es solo una prueba, pa'eso son, pa'regarla. Desinstalo SQL Server y ahora hago lo que debí haber hecho desde el principio.... Instalo el SQL Server 2005 con su licencia. Next, next, next...

Ahora otra vez con el VSTS... next, next, next.... ¡Oh! ¡no problema! Todo va excelente hasta que llegas a una ventana del wizard que dice: Service Logon Account ¡Chale! Pus le pongo la toda-poderosa-cuenta.... ¡Pelas! Nanay, no puedes usar la cuenta con que estás instalando.... Otra vez al pinky manual... ¡orales! Necesitas al menos otras dos cuentas de dominio TFSSERVICE y TFSREPORTS y si quieres verte chido, también TFSPROXY.....

Pus orale... a solicitarlas y a sentarme a tomar el fresquito del aire acondicionado.....

Finito.

[OFF-TOPIC]

Lo cuatitos de iBATIS liberaron hoy la siguiente versión en Beta de la versión .NET que entre otras cosas incluye el soporte a la versión 2.0 del framework ¡orales!

domingo, julio 02, 2006

A la cama sin un ganador

Justo acaba de dar su anuncio el titular del IFE en el cual señala que debido al escaso margen de diferencia entre los candidatos punteros, no es posible anunciar tendencias en los resultados dado que estos pueden variar.
A muchos les podrá parecer un esfuerzo por maquillar las cifras. Pudiera imponerse un resultado mediante maquiavélicas maniobras. Un escenario más para confirmar lo que a gritos ha venido anunciando la oposición: una elección de estado.
Ésta es mi segunda elección presidencial en la que participo como votante. Y he de reconocer muchos cambios, desde mi confirmación derechista y conservadora, muy distante de la izquierda radical que en mi temprana juventud manifesté. Pero el cambio que más me sorprende es la incertidumbre, la real indefinición que flota en el ambiente.
En este momento estoy escuchando al candidato de la izquierda, AMLO, que anuncia que aunque ha manifestado que respetará la decisión de las instituciones, se declara ganador debido a la información que posee. Ofrece convocar a un acuerdo nacional que involucre a todos los individuos y organizaciones. Una invitación franca según su dicho.
Sin embargo, el IFE tendrá que emitir el resultado final. Y a eso tendremos que atenernos todos los mexicanos (y mexicanas, claro).
Para mí no me queda clara la real tendencia de esta elección como dije anteriormente. Sin embargo, me parece saludable y se me antoja que le da un alto grado de confiabilidad al proceso de elección en si mismo.
Ahora estoy escuchando al candidato de la derecha, Felipe Calderon, que en su declaración anuncia el mismo sonsonente que su principal contrincante: somos ganadores. La supuesta ventaja son los resultados arrojados por diferentes encuestas de salida levantadas por empresas contratadas ex-profeso. Defiende sus resultados, remarca su victoria. Comparte sus felicitaciones a los gobernadores electos de su partido. Hace un breve esobozo del camino a seguir su gobierno.
Finalmente escuche el comentario del líder del PRI el cual pide que se respeten los tiempos definidos por el IFE. Ya sabe que se le avecina una tormenta. La caída total del partido. Ojala que recuperen lo bueno de lo perdido.
Esto sigue sin cerrarse.
Finito.

sábado, julio 01, 2006

Fábricas de Software - la otra visión

Cuando oímos el término fábricas de software generalmente nos imaginamos un espacio enorme con largas filas de desarrolladores que se extienden hasta el infinito con lámparas colgando sobre cada línea y el incesante repiqueteo de las teclas.

Pero es solo imaginación. La propuesta para hacer realidad es muy diferente. Jack Greenfield es su artículo "The Case for Software Factories" expone las razones que motivan la aparición de las fábricas de software. La incesante demanda de software, aún y cuando es una de las actividades más riesgosas en términos de tiempo y dinero, requiere de nuevos modelos de construcción de aplicaciones. Esta necesidad en ascenso requiere de una fuerza de trabajo que sea cada vez más productiva y se señala que el modelo de "maestro-aprendiz" que ha prevalecido no será capaz de generar los ejércitos de desarrolladores y que aún teniendolos más que demostrado queda que la solución no es agregar y agregar personal a los proyectos.

La industria del desarrollo de software ha pasado por esto antes y lo ha intentado resolver de muchas maneras (CASE, metologías formales, OOP, etc) pero llega el momento en que son rebasadas por la realidad y es necesaria una revolución en lo más profundo para continuar en el negocio.

Cada una de las revoluciones anteriores han ido aumentando el nivel de abstracción con el que trabajamos. Se ha ido desde bit por bit a lenguajes, de funciones a clases y métodos, de programatico a declarativo. Se puede representar esto como una torre en la que el siguiente piso permite manipular conceptos más abstractos, más despegados del hardware que el piso anterior. Sin embargo existe una diferencia de velocidad entre el avance de la plataforma, es decir el hardware, y las herramientas. Estamos en un punto donde las herramientas y procesos de desarrollo se han quedado estancadas y atrás en relación a la capacidad de cómputo disponible y sobre todo de las exigencias de los consumidores.

Haciendo un símil muy recurrido con la industria de la electrónica, Greenfield hace una comparación dura y directa: los chips actuales no se construyen transistor por transitor, ya existen componentes predefindos que sirven de base y que sin esfuerzo permiten tener en el mercado los productos demandados por los consumidores.

La pregunta de oro es ¿se puede automatizar el desarrollo de software de la misma manera? Se dice que sí y de hecho ponen como muestra SQL y las bases de datos. Mediante una estandarización se ha conseguido beneficios como la integración de datos y cierto nivel de independencia que consiguen hacer el acceso a datos más fácil y consistente. También se refieren a las interfaces gráficas. Al final se identifican algunos patrones recurrentes:
  • La repetición en la construcción de aplicaciones se identifican abstracciones reutilizables que se documentan y se aprovechan en desarrollos subsecuentes.
  • Después se construye un framework o engine para implementar estas abstracciones y patrones. Esto permite construir aplicaciones simplemente creando instancias, adaptando, configurando y conectando entre sí los componentes de este fx.
  • Finalmente se define un conjunto de herramientas y lenguajes para automatizar el proceso de construcción. Con esto se consigue reaccionar más rapidamente a los cambios ya que mucho del esfuerzo es automatizado y puede regenerse sin mucho esfuerzo.
Otras industrias aumentan su capacidad de producción moviendose a un proceso de manufactura en lugar del proceso artesanal individual o en pequeños grupos. En el proceso masivo se arman variantes de un mismo producto usando piezas genéricas de distintos proveedores y existe maquinaria para los procesos más simples y repetitivos. Se estandarizan procesos, diseños, empaque usando líneas de producto para facilitar la reutilización sistemática y al final, cadenas de suministro. Para poner en concreto lo anterior pénsemos en la industria automotriz. Hacen una implementación donde existen productos con algunas variantes (estándar, equipado, lujo) y se producen rápidamente (120 autos en 8 horas) y un rango de precios adecuados para su mercado.

Se han hecho analogías entre el software y otros bienes. Finalmente se reconoce que el software es similar a productos físicos o tangibles resultado de otros tipos de ingeniería tales como puentes, edificios y computadoras. Sin embargo existen importantes diferencias que le otorgan al software caraterísticas únicas. Al ser un ente lógico, abstracto, sin representación física, los costos se concentran en el desarrollo más que en la producción y debido a que el software no se desgasta ni acaba, su calidad depende de cualidades abstractas como fiabilidad y consistencia en lugar de durabilidad y resistencia.

El poder reutilizar componentes, cuyo desarrollo es caro, debe hacerse en un marco que permita aprovecharse en más de un producto dentro de un dominio (usar un mismo motor en más de un modelo de auto).

La reutilización sistemática da lugar a economías de escala y de alcance (scope) que son bien conocidas y aprovechadas en otras industrias. Las economias de escala aparecen cuando múltiples instancias identicas de un mismo producto se fabrican en masa en lugar de individualmente. A partir de un diseño original se crean prototipos (diseño), se refinan mediante procesos de ingeniería (desarrollo) y finalmente se fabrican masivamente (producción) mediante maquinaría o línes de producción de bajo costo (obreros) para satifacer la demanda. En el modelo de la economia de alcance se utilizan las mismas prácticas, procesos, herramientas y materiales para diseñar y crear prototipos de productos similares que se comercialzaran con algunas variantes.

La industria de software presenta importantes diferencias con las industria automotiva o electrónica pero se pueden encontrar algunas similitudes.
  • En el mercado de consumo masivo como aplicaciones de escritorio en el cual sistemas operativos y suites de oficina se producen en grandes cantidades, el sofware se comporta como una economia de escala, similar a la industria automotriz.
  • En el mercado empresarial en el que aplicaciones de negocio verticales no consiguen producirse masivamente, el software se comporta como una economia de alcance tal como la industria de la construcción.

¿Cómo se implementan estas prácticas de industralización en el desarrollo de aplicaciones? Si bien no existe una respuesta definitiva ya se están realizando esfuerzos para complementar los ambientes de desarrollo existentes. Microsoft dentro de su producto Visual Studio Team System ha aprovechado los esfuerzo que se han venido realizando en el equipo de Patterns & Practices. El resultado de esta estrategia se llama Guidance Automation Toolkit que es una extensión de Visual Studio 2005 que permite a los arquitectos y desarrolladores aprovechar los gadgets incluidos en los software factories para automatizar tareas claves del desarrollo desde el ambiente de Visual Studio.

Recientemente se han dado a conocer algunas software factories entre las que se incluyen la Smart Client Software Factory y la Mobile Client Software Factory. También existen otras factories que están desarrollo, por ejemplo la Web Service Factory que justo acaba de anunciar un último Community Drop.

En el Arquitecture Journal se publico el artículo A Software Factory Approach To HL7 Version 3 Solutions que fue el detonante para interesarme por este tema debido a que en el trabajo tenemos un área que procesa mensajes de HL7 mediante WebLogic Integration.

Finalmente, Haaron González expusó ayer en la Comunidad.NET del D.F. el tema Fábricas de Software de Cientes Inteligentes, lástima que olvidé la fecha y no pudo asistir.

Finito.

jueves, junio 29, 2006

Instalando Visual Studio Team System

Entre tantas cosas que no se habían hecho aunque si planeado, está la instalación de Visual Studio Team System (VSTS). El primer punto a resolver fue ¿qué carajos es VSTS? Obviamente solo la paciente lectura de más o menos 10,005 aburridos documentos me dió una pista. VSTS es un concepto. :S ¿Cómo?

Bueno, a mí me pareció más fácil verlo como un concepto. Lo traté de digerir de la siguiente manera: Exchange es el servidor de correo, Outlook es el cliente de correo. El problema aquí es que VSTS no es el servidor, en realidad el servidor se llama Team Foundation Server (TFS) ¡aahhh!

Además tenemos versiones cliente del ya conocido VS, son las versiones Team System entre las que se incluyen el recién publicado Database Professional, Architect, Developer, Tester y Project Manager. Cada uno para cada cual, lo que a la fecha no entiendo es por que tenemos como mil instalaciones de Developer y unas cuantas de las demás versiones (joke).

El sitio donde de plano le encontré sentido a todo esto fue en Installation and Administration of Team Foundation Server donde empecé con los requerimientos de harwdare (¿podrá correr en mi celeron 500 Mhz/64MB RAM?) y "planear" al tanteo nuestro ambiente de instalación. Fueron de gran ayuda los posts de Rob Caron y un par de documentos que en la misma página se pueden descargar.
A la conclusión que llegué es que de inicio vamos hacer una instalación en un solo equipo, nomás pa'ir calando la guía de instalación, que por cierto se me hace harto útil, la pueden encontrar en http://www.microsoft.com/downloads/details.aspx?FamilyId=E54BF6FF-026B-43A4-ADE4-A690388F310E&displaylang=en.

Es un archivo help que trae paso a paso las actividades necesarias para realizar la instalación. Por diversas causas todavía no termino, pero estoy seguro que antes de irme de vacaciones queda.

Para la instalación de producción tenemos planeado hacer una instalación en dos servidores. En primer lugar por que tenemos un mounstrito IA-64 queriendo ser usado y en segundo por que con eso de que no podemos tener el TFS en 64 bits (o al menos, no lo garantizan) vamos a tener SQL Server 2005 en IA-64 y TFS en un servidor normalito.
Ya veremos como termina este asunto.

martes, junio 27, 2006

Refresh masivo

Han sucedido algunas cosas en estos días ¿cuáles? puedo enumerar las siguientes:

Lo de la salida de México del Mundial... ya pasó... ni modo. Ahora para que se cumpla mi quiniela Argentina debe ganar la Copa.
Blaze Advisor ya no es una caja negra. Tome los cursos de "Fundamentals", "RMA" y "ARS". ¿Qué aprendí? A crear reglas, a usar metáforas de reglas (árboles de decisión, score tables, decision tables), a parametrizar reglas, a generar la interfaz web para los usuarios (RMA), a generar los servidores de reglas (ARS) y como usarlos dentro y fuera de contenedores J2EE (léase servidores de aplicación). Lo único malo es que fue debút y despedida. Mucho estudio, poco uso.
En relación a NHibernate, continué con mi ejercicio de definir relaciones padre-hijo para encontrarle sentido. Y aunque ya le he encontrado el modo, también aparecieron cosas que no me han gustado del todo. Eso me hizo colgarme un poco de iBATIS.NET pero todavía no le agarró cariño.
Y lo que creo que es más interesante. El AppExchange Connector.
Hace ya un par de años, desarrollé un proceso de integración entre salesforce.com y un ERP. Ahí me encontré por primera vez con servicios web "reales". Trabajé como tres meses en eso pero me quedó la inquietud de crear una biblioteca de clases que facilitara y sobre todo, generalizara, el uso de el API publicado por salesforce.com. Como un esfuerzo de generar una comunidad de desarrolladores han creado entre otras cosas, proyectos open source entre los que se incluyen un adaptador ADO.NET.
Lo que pretendo ofrecer no es un conector de este tipo sino una alternativa a generar sentencias de pseudo-SQL y aprovechar lo que ellos llaman la Partner API.
Inicié el desarrollo con .NET 1.1, hice un intento de construir una versión paralela en Mono, pero por diversos errores no lo conseguí y dejé abandonado el trabajo en esto. Un par de días atrás me preguntaron por el status del proyecto y eso me hizo reflexionar y decidir que iba a continuar y tomé al menos una decisión importante al respecto. Todo el desarrollo que venga a continuación se va hacer sobre .NET 2.0.
La plataforma ya está liberada e incluso ya ha sido objeto de los embates de mercadotecnia de los directivos de Microsoft, que ahora resulta que la combinación .NET 2.0 y WinFx (el ambiente de desarrollo de la siguiente generación de Windows) se llama .NET 3.0.
Este cambio de mkt, sirvió para iluminarme y tomar esta decisión. No me puedo quedar así. Quiero seguir evolucionando con la plataforma.
Veamos pués, que nos depara el futuro.

martes, junio 13, 2006

Bolsitas para la baba...

¡De verda' que a veces se nos van las cabras bien gacho!

Ayer estaba retomando un proyectín que tengo medio apagado y revisaba los fuentes con Vim para refrescar mi memoria cuando...



¿Qué onda? ¿Qué $%"#$"$"" le pasó a mi código? Empecé a debrayar y a imaginar cuanta tontería se me iba ocurriendo: que si falló el usb, el SVN, el usuario, etc.

Lo curioso fue que si abría el mismo archivo en Visual Studio .NET 2003, no había ningún problema...


¿Qué misterio había detrás? Estaba completamente perplejo. Después simplemente quedé como pende,0....

Existe la opción para cambiar el encoding de los archivos: File, Advanced Set Options y en esa caja de diálogo se cambia al tipo que deseamos usar:

Guardamos de nuevo el archivo y asunto resuelto....

jueves, junio 08, 2006

Sitio de Arquitectos WannaBe

Hoy me llegó una invitación para la Comunidad Empresarial de Arquitectos de Microsoft México. Son reuniones donde sin entrar en mucho mercadeo, tratan temas de arquitectura. Al menos eso me han dicho, ya que a la fecha no he asisitido a ninguna. ¿Por qué? Simplemente por que las reuniones generalmente son en el Club de Empresarios Bosques y su estricto código exige a los visitantes vestir saco y corbata.
Seguramente Microsoft no se va a acabar por que no asista a esas reuniones. Pero creo que habría una mayor asistencia si se realizaran en lugares menos exclusivos.
En la invitación viene una liga a un sitio muy interesante: Skyscrapr, una comunidad de wanna-be's en arquitectura. Chequen el video introductorio: http://www.skyscrapr.net/blogs/video/archive/2006/03/10/46.aspx

viernes, mayo 19, 2006

Da vergüenza

Todos los días uso el metrobus para llegar al trabajo. Lo abordo desde su terminal en Indios Verdes lidiando con trogloditos y trogloditas, hijos e hijas de López Obrador, que sienten que su "oprimida" condición les da derecho a no comportarse en orden. La batalla llega a tal grado, que prefiero dejar pasar uno, dos, tres, cuantos trenes sean necesarios para evitar en lo posible, despotricar contra un elegante trajeado con lagañas o una gorda perfumada con el maquillaje de ayer.
Finalmente consigo un lugar y voy sentado mirando por la ventana del metrobus. Coches, gente, edificios. Sobreviviendo a emisiones flatulentas y sobacales. Tratando de sobrellevar al clásico güey que se hace espacio y ¡ay de aquel que le reclame! - "Si no te parece vete en taxi". ¿Quién iba imaginar que una de mis frases más usadas me suene hoy a estupidez?
Sin embargo, esta semana sucedió algo fuera de lo común. En la ruta del metrobus cruzamos Reforma e Insurgentes, justo donde se encuentra el campamento de los manifestantes de los 400 pueblos. Esta semana retomaron su manifestaciones en carne viva. Y eso fue lo que hizo que la mayoría de los pasajeros del metrobus coincidieramos en algo. Conforme avanzabamos la vista se lleno de hombres solo en calzón y de mujeres desnudas en la base de la estatua de Cuauhtemoc. No pude soportarlo y baje la mirada. Se me ocurrió ver a los demás y reaccionaron de igual manera.
Es vergonzoso. No por la desnudez de esas personas. Si no por que atentando contra su dignidad, protestan contra las vejaciones que han sufrido. No imagino que cosas son capaces de motivarte a desnudarte en un lugar público. Y es vergonzoso por que a la fecha, no tengo noticia de que les hayan resuelto algo. De que haya alguien en el gobierno, estatal y/o federal, que no haya hecho las acciones necesarias para atender sus peticiones, en la medida que sean legítimas y razonables. Vergüenza de nosotros, espectadores, que simplemente agachemos la mirada y no hagamos más. Eso si debe de darnos vergüenza.

lunes, mayo 15, 2006

Usando NAnt con Mono bajo Windows

Creo que más de uno han batallado para hacer funcionar NAnt con el ambiente de ejecución de Mono.

La solución que propongo es la siguiente:

  • En el archivo NAnt.exe.config, buscanos la sección en la cual se define el ambiente para "mono-1.0"

  • Casi al final, lindando con la definición de "mono-2.0", encontramos las siguientes definiciones:
    <!-- determine if we're NOT dealing with a Mono 1.0.x release -->
    <if test="${version::get-major(version::parse(defaultCLR)) != 1 or version::get-minor(version::parse(defaultCLR)) != 0}">
    <!-- in Mono 1.1.x (and higher ?), the framework tools are located in the <installroot>\lib\mono\<profile> directory -->

  • Las líneas importantes son estas:
    <!-- property name="runtimeEngine" value="${path::combine(frameworkAssemblyDirectory, 'mono.exe')}" / -->
    <property name="runtimeEngine" value="${path::combine(sdkInstallRoot, 'bin/mono.exe')}" />


Como se puede ver, en lugar de usar el valor de frameworkAssemblyDirectory, se sustituye por sdkInstallRoot y de agrega el sufijo 'bin/' a la ruta para llegar a mono.exe
Esto me funcionó para Mono 1.1.13.6 y 1.1.15 con NAnt 0.85.1932.0; rc3; bajo Windows XP-ESN

martes, mayo 09, 2006

Como desperdiciar un fin de semana

El viernes recibí un obsequió inesperado. La versión Beta 2 de Windows Vista y se me encendieron los ánimos de probarla, de llegar a casa e instalarla. Aunque tengo un par de proyectos personales en proceso, pensé que valía la pena desconfiguar la laptop para probar el nuevo juguete. Llegué cansado a casa y no hice más, de cualquier manera me esperaba un largo fin de semana.
Aprovechando el sábado para levantarme tarde, me desperté con una idea que se fue creando en mi mente a lo largo de la noche. Tengo por ahí una vieja laptop Celeron con 64 MB de RAM y 6 GB en DD. "Perfecta para Linux" - pensé. Que viejo se vuelve el HW de repente. Una de las versiones que me interesaba probar, Gentoo, requiere al menos 128 MB de RAM para instalarse. Knoppix requiere 96 MB si quieres que trabaje con un ambiente gráfico. No conseguí levantar más que Knoppix en una sesión en cámara lenta
Mientras tanto, Windows Vista se instaló en mi laptop (Pentium 725 1.6Ghz, 1.25 GB RAM, 80 GB en DD). Terminé los detalles de personalización ¡y a jugar!.... Bueno, eso pensé yo, al navegar por la configuración del sistema operativo, encontré un vista donde "calificaba" lo apropiado del HW para correr Vista. En una escala del 1 al 5, mi laptop, mi equipo más moderno calificó con UNO. ¡Oh decepción! Aún así me aferré un rato e instale el Visual Express C#. No tanto problema, solo la espera por la descarga y la instalación. Nada del otro mundo. Todo esto lo hice conectado por cable al modem-router, ahora seguía probar la configuración WiFi. Creo que lo conseguí pero nunca funcionó. Encontré que Vista instala IPv6, chicos previsores los de Redmond
Decepcionado, regresé al viejo y conocido XP :(. Ya saben, instalación del SO, instalación del SP2 y de todas las actualizaciones del año. Harto aburrido. Terminé la instalación y mis actividades del día y me fuí a dormir.
Con todas estas instalaciones, obviamente se perdió el arranque dual de Windows y Fedora, así que pa'variar, me faltaba instalar mi partición Linux. Tenía a la mano los cd's de instalación de Open Suse 10.0, así que dije "¿por qué no?" Y empecé la instalación. Algo larga por los 5 cd's. Bonito KDE. Mono "out-of-the-box". No sound.
Mi laptop se quedó muda. Y como me encanta el escándalo, tristemente dije "no" a Suse y regresé a FC4. Y va de nuez. Instalar, configurar y dije "¿qué tal si la actualizo a FC5? ¿por qué no?"... Y actualicé el kernel, kudzu y los initscripts... por ahí saltó un error pero no hice caso... craso error. Al reiniciar el equipo simplemente se quedó en blanco.
Y va de nuez... ahora estoy pensando seriamente en descargar el DVD de FC5, pero mientras de nueva vuelta instalé y configuré FC4, no actualicé nada, simplemente le instalé los paquetes de Mono y ya
Moraleja: No desperdicien su fin de semana instalando SO's.

viernes, mayo 05, 2006

BEA Dev2DevDays -México

Hoy se realizó el día Dev2Dev de Bea, un evento que reune a desarrolladores Java que trabajan con herramientas BEA, principalmente con la línea de productos WebLogic. Bajo el slogan de "Create. Innovate. Blend". La estrategia de BEA, es ofrecer sus productos integrando componentes Open Source de manera que la productividad del desarrollador aumente, las aplicaciones dejen satisfechos a los usuarios y todos contentos :-) .

Las presentaciones giraron alrededor de la integración de Spring, Hibernate y del nuevo entorno de desarrollo basado en Eclipse. Tocaron algo de Ajax, también hablaron de EJB 3.0, Kodo y JSF's. También promocionaron la comunidad en línea dev2dev; como dato curioso estuvo la nota de que O'Reilly está como editorial detrás del sitio. Hubo quienes vieron como novedad esta integración de software propietario y comercial. Hay quienes lo ven como algo de todos los días. La impresión que me quedó es que hay gente que realmente está clavada en estos y poseé conocimientos profundo del tema. De hecho, uno de los asistentes anunció un sitio bastante interesante: http://www.springhispano.org.

Lo más significativo para mí, es que este evento marco dos años de trabajo con WebLogic y la tecnología Java. Estos dos años han sido de aprendizaje sobre algo que siendo un desarrollador .NET de corazón continuamente nos lo presentan como el enemigo. No todo se resuelve con un martillo, hay otras herramientas muy útiles. En lo personal, creo que la habilidad del artesano, más que las herramientas, determina el resultado. No por poder usar un pincel me convierto en Van Gogh. En  fin, dos años durmiendo con el "enemigo". Han sido noches muy envidiables. ;-)

martes, mayo 02, 2006

Lástima de día

Lástima de día
con los ojos hinchados
de tanto dormir.

Lástima de día
promesa de alegría
vanas promesas

Mis oídos sordos
La soledad que abre mi pecho
Piel hirviente
y sigo sin escuchar

Lástima de día...
Y como dices
ya van trece años
de lo mismo.

lunes, mayo 01, 2006

La carretera

Enfrente de mi se extiende la carretera hasta donde la vista alcanza. Una recta perpetua que termina al empezar el horizonte. Nunca ví el inicio y no alcanzo ver el final.

En cada oportunidad, mi papá nos procuraba algún paseo cuando pequeño junto con mis hermanos y mamá. Hubo algunos tan largos que alcanzamos a recorrer la mayor parte del sureste y hubo otros más frecuentes que llegaban al "pueblo", al lugar de origen de mi abuelo. En cualquiera de los casos al frente del volante iba papá. Callado, inmerso en sus pensamientos. Mirando la carretera eterna y ocasionalmente el retrovisor.

Alguna vez comentó lo mucho que le gusta manejar en carretera. Ahora que veo el infinito en forma de carretera, concibo todo de otra manera.

"Calla, duerme, piensa,
queda mucho por andar,
la carretera es tensa
y llueve sin parar".

Hace algunos años papá iba al frente del volante de la familia. Ahora, en una carretera distinta voy al frente de mi familia. En el momento en que nació mi hijo mayor se abrió un tramo que quisiera o no requería que me hiciera cargo. Y de ahí al presente, con descalabros y otro par de paradas (el niño rete-inquieto y la princesa) seguimos haciendo camino.

"Cada día despierto
en distinta habitación
donde doy con mis huesos
cuando está saliendo el sol,..."

Frente al infinito asfalto, se me agolpan en la mente las rutas que convergieron en la mía. Un aviso de carretera indica que si tomamos esa ruta llegaremos a Huichapan. Mi abuelo paterno nació en Maravillas, Hidalgo, bueno, tomemos como referencia Maravillas aunque seguramente nació en alguna ranchería aledaña.

La historia de esa ruta, conseguí que la contara mi abuela hace algunos años.

Seguramente en plan de chaperona, mi abuela acompaño a una de sus hermanas (supongo que mayor que ella) a la capital. Ahí la hermana se encontró con su "galán" y quiero pensar que en contubierno, iba misteriosamente acompañada. La hermana se fue con el "galán" y mi abuela se quedo con el "acompañante". No tengo el detalle de todo el asunto pero fijas en mi memoria están las palabras "..y me soplaba en las orejitas.." y una risa tan fresca como me imagino que fue en ese entonces. Después de quién sabe cuanto tiempo y que tantas peripecias, llegó la hermana y el "galán", para regresar a su casa, mi abuela solo tuvo una cosa en mente: "Yo no supe como es que había pasado, pero no podía regresar, ya no era lo mismo, no podía regresar..." Ni la insistencia de la hermana consiguió convencer a mi abuela. Y se quedó con el acompañante que finalmente resultó ser mi abuelo.

"Curvas, baches, bares,
perros muertos sin collar,
y la musica que tu,
haz traido para recordar,
aquella niña, que sabe Dios
donde estara."

Mi otro abuelo, nacido en Guatemala y radicado en México, con el casi impostergable anhelo de llegar "al norte" en busca del "american dream", quedó arraigado aquí por el baile y por su negrita. El se dedicaba a vender de oportunidad en los mercados, ella se crió como dama de compañía de una familia acaudalada. Mi abuelo se prendió de "... su figurita, era muy bonita." Y de esa manera se construyó otra carretera en la que finalmente apareció mi mamá.

"dormimos poco y mal
quemando la salud
para llegar al quinto infierno
donde cantaré de nuevo
¿qué estarás haciendo tú?"

Finalmente mis padres me trajeron al mundo enmedio de su propia carretera, con mi padre frente al volante y mamá a su lado. Y entre tantos recuerdos de esa ruta, tengo presente aquella vez en que por el retrovisor me econtré con los ojos tristes de papá y adelante de nosotros la carroza funebre con los restos de mi abuelo.

"Y quisieras irte ya, te duele la
espalda, te miras a un espejo
y ves sudor y whiskey y agua."

Todo esto se ha vertido en mi conscienca en un par de minutos, pero son años viajando en la carretera. Por más que estiro la vista no consigo ver el final y realmente ahora viviendo en esta metáfora no me apuro por encontrarlo. Solo pienso en guiar el volante de mi familia de modo que la ruta de mis hijos tenga menos cuestas, menos baches y mejores lugares. Pero finalmente, al igual que mis abuelos, mis padres y yo, recorrerán su propia carretera.

"El camino no se acaba
continuare sin descanso
si logro llegar hasta el punto final
donde no hay mas por andar.."

jueves, abril 27, 2006

Lo que me da valor

Al menos esta semana no ha sido con días grises, cada uno igual al anterior. Por razones meramente laborales me he visto envuelto en componentes de cifrado, tema que no es uno de mis fuertes así que de repente me siento envuelto en un remolino avallasador de estándares, algoritmos y términos tan obscuros como lo que pretenden realizar.

Dentro de este aprendizaje, recordé que alguna vez navegando por los fuentes de Mono encontré una aplicación que se hacía llamar ASN1View que lo que hace es presentar la notación ASN1 de un documento y como no entendía nada acerca de como estan construidos los PKCS12's y demás, me pareció una excelente oportunidad de utilizarla. Solo existía un pequeño problema. Esta construida para correrse con Gtk# y aunque lo intenté, no conseguí hacerlo funcionar sobre Windows.

Una de las tareas "por hacer" era precisamente un port a Windows Forms, así que alegremente me lancé a la tarea ¿Por qué no?. El lunes pasado conseguí tener algo funcional que me ayudó a entender esto de los estándares, oid's y otros chunches y para el martes me animé a anunciar en la lista Mono-list la existencia del port.

El mísmisimo Sebastian, autor original del viewer, tuvo la gentileza de responder, lo cual me motivo enormemente a terminar con esta tarea.

Estás cosas son las que le dan valor al día. Lo material viene y va. El sentimiento de trascendencia me satisface de una manera muy difícil de describir. No soy el primero en decirlo, pero el satisfacer necesidades sirve como base para que nuevas necesidades aparezcan, éstas últimas más virtuosas y valiosas que las anteriores (al menos en teoría). Tener la satisfacción de trascender en base a mi trabajo me orienta, casi casi me orilla a ser mejor persona, mejor padre, mejor esposo. Esa es la aspiración final. Adquirir una casa no me da ese aliciente. Ante muchos espectadores habré conseguido un gran 'hito' o 'milestone' como individuo, padre y esposo. No para mí. Con o sin casa seguiré siendo el mismo si no estoy satisfecho conmigo mismo.

En fin, tengo trabajo que hacer, por ganar un sueldo y por ganar valor para mí mismo.

lunes, abril 24, 2006

Es lunes en la mañana

Otra vez posteando tarde :P, ya es costumbre. La semana pasada se me fue como agua, un día tras otro sin diferencia más que la ropa que llevaba puesta. Y el fin de semana tan ansiado llego, y como llegó se fue. Sábado. Levantarte tarde (cualquier hora después de las 6:00AM es tarde), desayunar comida de casa con el escándalo de mis hijos. 3 o 4 horas para salir al cine. Divertirnos un rato y comer palomitas entre los ataques de risa provocados por la peli.
Después, comprar comida "china" para llevar y que la flaca no cocine, tiene que descansar a veces. Y me perdí por cerca de tres horas en un sueño abrogradamente reparador. Para las 10:30PM me desperté para cenar y retomar la laptop y el código que deje pendiente a la salida.
Ahora le veo más forma. Le agregué pruebas unitarias para no hacer un cliente de prueba. También instalé el ViEmu y entre las pruebas unitarias y jugar con el ViEmu me alcanzaron las 2:00AM y me fui a dormir.
Entre sueños ansiaba despertar y avanzar con la siguiente clase. Crear las pruebas unitarias que comprobaran que el comportamiento de la clase era el correcto. Pero mi cuerpo se resistía a despegarse de la cama hasta que recibí un par de patadas en los riñones y sin más me levanté a vaciar mi vejiga hinchada. Estuve tirando código hasta que fue hora de ir a misa. Después fuimos al BlockBuster para comprar Narnia y rentar unas pelis. Recogimos la pecera de las gordas (mis tortugas) que estaba en reparación y regresamos a casa. La tarde se hizo lenta y aburrida en lo que terminaba de limpiar la pecera para poder usarla. Al final sigue en la zotehuela ya que la flaca se molestó por un comentario que hice acerca del mueble que me prestaba para servir como base de la pecera.
Me quede dormido en la sala, completamente cuajado a pesar de lo incómodo del apoya brazos. Ahora las 2:00AM me despertaron entre el frío y el sentimiento de soledad. Las tortugas no son las mejores compañeras en la cama. Seguía la laptop encendida así que seguí tirando código. Otra clase más con al menos dos pruebas unitarias. Ojalá y fuera más proficiente tirando código que imaginándomelo. A las 4:30AM encendí el boiler para bañarme y sali al trabajo. Todo fue rutina. Seleccionar la ropa, bañarme, arreglarme, despedirme de la flaca que seguía enojada y salir al frío de la madrugada. En el camión dormí como un bendito. Ni siquiera la histeria de esperar pasar la caseta de la autopista sin que asalten el camión consiguió mantenerme despierto. Llegando a Indios Verdes recuperé la conciencia y el control de mi cuerpo que consiguió hacer "tronar" mis vértebras cervicales al estirarme como gato.
Un amigo dice que vivimos en un país de tercer grado de primaria. Y cada mañana al estar formado en el metrobus lo confirmó. Odio a la gente que se mete a empujones cuando llega el metrobus. Odio que no respeten el orden de la fila. Odio que se sientan con derecho de llegar y meterse solo por que se les hizo tarde. Ese no es mi problema. Yo me levanto temprano si quiero llegar temprano y si se me hizo tarde no es culpa de nadie más que mía. Me dan ganas de gritarles "Hijos de López Obrador" o "Hijos del PRI" cualquiera que más les ofenda.
Es lunes en la mañana.

jueves, abril 06, 2006

Actualización a FC5

En mi laptop tengo dos particiones, una con Windows XP y la otra con Fedora Core, antes 4 y en progreso 5. La mayor parte del tiempo la paso con Windows, sin embargo Linux no ha dejado de tener un cierto encanto para mí sobre todo por Mono.
En Linux, programo como un hombre de verda': vi y compilador. Para los momentos en que reconozco mi lado femenino tengo a MonoDevelop :P.
El proceso de actualización no fue tan sencillo como imaginé, pero gracias a la ayuda de MakuChaku fue que lo conseguí.
En cuanto termine, voy a darme vuelo. Una de las cosas que más espero es poder trabajar Wireless. Adoro estar en mi camita y nawebe@r en internet.

Marca mata experiencia

Hoy (más bien ayer) fue un día algo interesante....
Dentro de la estrategia de ventas de Sonic, trajeron para convencernos a David Chapell, creador del concepto del Enterprise Service Bus y autor de varios libros bajo el tema de integración.
Los buenos vendedores locales dejaron a Chappell hacer la presentación de la marca y parte del producto, posteriormente se le explicó la situación actual y que puntos habrían de atacarse con el ESB. Antes de continuar dejenme decir que la presentación fue de web@... Más de una vez cabeceé por más que quisé adentrarme en la presentación del gringou... Lo peor fue que me tocó atender otra reunión y ya no pude oir de viva voz como fue trazando la solución para nuestra problemática. So sad.
En la reunión que tuve que atender, se presentó una propuesta de arquitectura para un sistema que tenemos en operación con un enorme volumen de operación. Como miembros del jurado tuvimos al director de servicios profesionales del producto que se utiliza y a uno de los consultores seniors.
Escuchamos atentamente la propuesta, la cual en lo particular no me decía nada nuevo. Mucho de lo que se planteo se sugirió o al menos se comentó de nuestra parte anteriormente.
He aquí el meollo de este asunto. Sin descalificar a los consultores que nos acompañaron cuyos comentarios fueron demasiado coincidentes con las opiniones que ya habíamos externado, me sorprende la receptividad que tienen para con ellos. Más directo. A ellos los pelan, a nosotros (los propios) no. ¿Mata marca a experiencia?

miércoles, marzo 29, 2006

Criptografía y milestones (hitos pa'los hispano-parlantes)

Hoy me pasé parte del día batallando con PKCS#12, PKCS#7, cifrado, descifrado, firmas y demás. La verdad es que no es es mi fuerte. Me gusta pero no. ja.
Se me hace muy curioso por que creo que la mayoría de la gente, aunque trabaja con estas cosas de seguridad tampoco lo entiende del todo. En el proyecto Mono hay un ASN1 Viewer, según esto, ASN1 es la "notación" de todos estándares y me ha dado la curiosidad de echar a andar ese "viewer" en Windows Forms...
Dicho esto viene a colación el tema de los milestones o hitos pa' los que mascan español. Ahora tengo que poner algunos milestones para mi desarrollo profesional. De inicio tiene que ver con , el proyecto Mono, Ruby, Spring.NET y más cosas. ¡Ah si! Criptografía. :P

lunes, marzo 27, 2006

De golpe...

Todo un bonche de cosas que no he comentado. Hoy me convertí en beta tester. Instalé en mi equipo de la ofi Internet Explorer 7 Beta 2 - March 20th. So far, so good.
El fin de semana me hice de Expert C# 2005 Business Objects. Mi primera experiencia con CSLA .NET no me dejó un buen sabor de boca, sin embargo, voy por otro intento. Espero ya decidirme y publicar con más detalle lo bueno, lo malo y lo feo de CSLA .NET.
Justo acabo de terminar una dizque "configuración" de WebSphere MQ, un producto de IBM (c) para integración. El reto aquí fue usarlo para integrarse mediante JMS entre un servidor WebLogic y un servidor WebSphere. Según esto, J2EE es un estándar.. ver para creer...

sábado, febrero 18, 2006

Un nuevo reader in town

Nawebeando hoy me encontré con esta joyita....

Google Reader (beta) y a decir verdad es una dulce adicción.

Desde que empecé con la onda de los feeds y los blogs he buscado constantemente una manera de centralizar mi variada lista de lecturas.

Actualmente en la pc de la ofi, uso Attensa ya que mi cliente oficial es Outlook. En mi lap uso Thunderbird y en ninguno de los dos readers la lista de subscripciones es la misma. Por eso es que estoy tan entusiasmado con Google Reader (beta).

Lo ideal sería tener un modo para tenerlo en mi página principal de Google.

De cualquier manera, échense un buzo para que se intoxiquen de por vida.

viernes, enero 20, 2006

Liberada Enterprise Library para .NET 2.0

Llegó hoy la notificación de la liberación de la actualización de la Enterprise Library para correrse sobre la versión 2.0 del .NET Framework.
No es la nueva versión de EL, seguramente en unos meses nos tendrán sorpresas el equipo de P&P.
Curiosamente, he encontrado que varias referencias a este blog tienen que ver con búsquedas relacionadas con los Applicaction Blocks, principalmente UIP y Data Access. Aunque este release es un solo un refrito debido al cambio del plataforma, me suena a un buen pretexto para un artículo :P

Mudanzas

Hoy terminamos de empacar nuestras cositas para regresar de nuevo a nuestras oficinas ya remodeladas. Estuvimos de huéspedes desde octubre del año pasado adaptándonos a estas instalaciones. Realmente fue fácil. No prisas. No ruido. No teléfonos. No nada. Incluso hubo mañanas que aún que este frío me hacían compañia un grupo de pajarillos en la ventana.
Ahora que vamos de vuelta, voy a echar de menos todo este estilo de vida.
¿Vale la pena regresar al ajetreo? ¿A las prisas? ¿Cuál es el reto de vivir así? ¿Sobrevivir a un infarto? ¿Aprender a vivir sin una familia? ¿Vivir de noche?

viernes, enero 06, 2006

Día de Reyes

Tradicionalemente en México se celebra el Día de Reyes en esta fecha, formalmente Día de la Epifanía. Durante los días anteriores y especialmente ayer, la mayoría de los niños escriben sus cartas a los Reyes, en las cuales piden las más variadas cosas, principalmente juguetes aunque ocasionalmente se dejan ver otras peticiones no tan materiales.
Todavía recuerdo la emoción previa al tan esperado amanecer. Casi es imposible conciliar el sueño, finalmente, después de preparar el zapato, re-te bien boleado y la mejor de las cartitas, una cena y a la cama. Ves el techo, volteas y vez la pared. Segundo a segundo suena el reloj del comedor. La luz de los faroles de la calle entra por las ventanas pero no amanece.
Como sorprendido de tí mismo despiertas y en medio del sueño, de reproches a tí mismo por ser tan flojo y no aguantar, te lanzas a buscar lo que tanto anhelas.
Emociones tan opuestas como la decepción y la sorpresa burbujean de los niños que ven sus regalos. "¿Por qué si son magos no traen lo que pedí?". ¿Cuantas veces recibimos lo solicitado? ¿Cuantas otras no fue así?. Dentro de todo, es peor aún cuando despiertas y te das cuenta que no hay nada siendo que esperabas ver ahí el juguete de moda. ¿Acaso fuiste desobediente? ¿Fue por aquella vez que le pegaste a tu hermanito? ¿O por haber descompuesto el tornamesa?. Seguramente fue por aquella vez que ya urgido, llegaste y orinaste sobre la pared de la recamara.
El tiempo pasa y los Reyes pasan de largo. Un día simplemente no dejas carta, no aparece nada ni esperas que aparezca y no pasa nada. No buscas respuestas ni culpables y sales a la calle o escuela y terminas totalmente ebrio por celebrar "la partida de rosca".
"Recuerdos, recuerdos, recuerdos" repite la Sor durante las pláticas previas a algún sacramento. Y de recuerdos se llena la memoria y el corazón. Recuerdos del Día de Reyes

domingo, enero 01, 2006

Mi primer post del año

De inicio puedo decir que la fiesta de fin de año estuvo super. Nadie escoge su familia extensa (abuelos, tíos y primos), todas tienen algo de bueno, de malo y de feo (las eternas categorías) pero también tienen algo que pocas veces valoramos: son indispensables.
Puedes tener diferencias con tal o cual. Puede que tus actitudes no sean del agrado de todos, pero, te conocen desde antes de nacer y tú a ellos. Te vieron aprender a comer, a caminar, tus primeras "gracias" y te siguieron durante toda tu escolaridad y hasta el presente. De alguna manera han compartido tu vida. Y cuando empiezas a conocer (y a traer) nuevos retoños, vas extendiendo esa familia agregando cosas buenas, malas y feas.

Fue padrísimo terminar el año conviviendo con todos ellos, con esas pequeñas princesas de mis sobrinas y el valiente par de hombrecitos que son mis sobrinos. Ver con un enorme gusto a mis primos y primas, algunos creando sus familias y otros en seguramente en algunos años tendrán sus retoños. Y he de agradecer que hayan soportado mi profunda adicción al Karaoke (ja).

Abrazar a mi Abue es muy especial. Siento profundamente la emoción que le invade y conforme pasan los años me pasa lo mismo. Aunque ha ido creciendo mi emoción al verla, aplicar eso de "no vernos para vernos con gusto", creo que ha ido demasiado lejos. Varios años atrás falleció mi abuelo, y solo queda como un recuerdo. Pero mi Abue está aquí, no sé por cuanto tiempo, solo siento que debo abrazarla más seguido.

Una de mis tías, la mayor, se encuentra hospitalizada. Todos sus padecimientos, si no es que la mayoría se deben al sobrepeso. Espero que pronto se encuentre bien, en su casa y haciendo los cambios necesarios para mejorar su salud.

Hace tiempo deje de hacer propósitos para el Año Nuevo, y lo que sigue no son propósitos, si no más bien cosas que sé o que me gustaría hacer. No las puedo enumerar ni colocar prioridades, solo las voy a poner en el orden que se me van ocurriendo.

La primera es, por enésima vez, bajar de peso. Sin comentarios.

Debo dedicar más tiempo, y tiempo de calidad con mi esposa e hijos. El pequeño baile de ayer con mi hija fue simplemente hermoso. Creo que lo voy a recordar hasta mis últimos días.

Ahora siento que veo muy pocas veces a mis Abues. Debo pasar más tiempo con ellas; escucharlas y compartir tiempo con ellas.

Quiero disfrutar con mi familia los fines de semana de "Trilogía" :P

¿Trabajo? Solo le pido a Dios que no falte ¿Bienes? Los que el trabajo vaya dando. ¿Viajes? Al menos, si el viaje a España de mi mamá se concreta, tengo el anhelo de enviar a Jorge con ella.

En fin, este es mi primer post del año, veremos los resultados al fin de año.

miércoles, diciembre 07, 2005

¡Liberado Composite UI Application Block (CAB)!

En el blog de Eugenio Pace, se anunció hoy la liberación del Composite UI Application Block.
Recordemos que en abril de este año, tuvimos la oportunidad de escucharlo cuando en la Comunidad .NET del D.F. presentó Enterprise Library. En esa misma ocasión nos refirió brevemente el trabajo que se estaba realizando en relación al CAB y finalmente, lo tenemos listo.
Este Application Block es muy interesante, ya que nos permite ir creando UI por partes en aplicaciones WinForms, tipo WebParts y sobre todo proveé de la infraestructura para realizar esa interacción casi mágica de los componentes UI que se vayan integrando.
Me encanta, que estos tiempos de AJAX y "software-on-demand", todavía se exploren nichos de oportunidad para las aplicaciones de escritorio.

lunes, diciembre 05, 2005

'on toy?

Creo que no se está publicando. Espero que sip.

miércoles, noviembre 23, 2005

La verdad está allá afuera

Hoy se lleva a cabo el evento Encuentro Nacional Prosoft 2005 donde se estará tratando por enésima vez el esta estrategia institucional para el desarrollo del sector de las tecnologías de información.
A mí me parecen curiosos los temas con los que participa Microsoft en este evento. Por una parte, una obligada presentación acerca de Microsoft Windows Vista, y por otra las presentaciones asociadas a Xbox 360 y desarrollo de juegos con .NET.
Éstas últimas son las que despertaron mis inquietudes.
Bien sabido es que la nueva consola de Microsoft está basada en una plataforma no Intel, si no en la línea de procesadores PowerPC-based de IBM. Sin embargo, siguen promoviendo el desarrollo de videojuegos para esta consola con herramientas .NET.
Hasta la fecha, el SDK de .NET solo se ha ofrecido para procesadores x86 de 32 y recientemente de 64 bits. Para el desarrollo de videojuegos en Xbox 360, ¿existe una versión de .NET corriendo sobre PowerPC? Si es así, ¿por qué Microsoft no la hace pública?

martes, noviembre 22, 2005

Nice demo of Mono

Scott Hanselman, widely known because his "Ultimate Tools List", has published on his blog an interesting demo of Mono compilation and compares the generated IL code.
Althoug not extensive test, good enough to get a little more attention to the cross-compiling characteristics of Mono.

martes, noviembre 08, 2005

Premio de consolación

Para aquellos que no tuvieron la oportunidad de participar en Desarrollador Cinco Estrellas 2005 y obtener gratis su copia de Visual Studio .NET 2005, aquí está el premio de consolación.
Ayer se anunció la liberación de las versiones Express de los productos 2005. Estos van a estar disponibles de manera gratuita durante un año completo y al momento de registrarlos se obtienen algunos beneficios adicionales.
Antes de tener en mis manos las versiones beta y rc1 de VS.NET, estuve trabajando con estas herramientas y realmente son muy útiles. Digo, tienen sus limitaciones pero para el alcance de un estudiante, un desarrollador que tiene la inquietud de conocer .NET o proyectos sencillos, están bastante adecuadas.

viernes, noviembre 04, 2005

Buenas nuevas

El descuido de las cosas importantes y la mercadotecnia ha dejado a un lado la liberación de .NET Framework 2.0. Durante más de un año hemos esperado Visual Studio.NET 2005, estamos al pendiente de su lanzamiento, versiones beta y demás olvidando que la piedra fundamental es el Framework.
Aún así, yo mismo entré en la competencia para obtener mi VS.NET 2005 gratis y lo voy a tener ya que conseguí mi segunda estrella del programa Desarrollador Cinco Estrellas 2005.
Espero recogerlo durante el lanzamiento en México que será el próximo 15 de noviembre.

martes, noviembre 01, 2005

Pa'reirse un ratín

Leyendo el blog de Griffin Caprio, me encontré la liga a este cómico video.
Véanlo, ríanse, relájense.

domingo, octubre 30, 2005

Debilidad humana y vitalidad recuperadas

Ha sido una quincena larga. Una mudanza, más trabajo, menos estudio, menos blogging.
¿Dónde está la debilidad humana? En la fiaca. Después de encontrar mi carrera alternativa (mudancero) ha sido una flojera mayúscula, sobre todo mental.
Para despertarme de este aletargamiento, cayó en mis manos un caso de instalación y configuración en una nueva plataforma (al menos para mí).
Echar a andar WebLogic Integration en Itanium 2 ha sido uno de esos casos donde me aferré a conseguirlo y lo conseguí. ¿Cuál es el mérito? Conseguirlo. ¿Qué valor tiene en medio de un México de políticos bribones y desastres naturales? Sentirme vivo. Sentirme capaz. Sentir que puedo aportar algo, mi labor diaria, a la construcción y reconstrucción de este país.

martes, octubre 11, 2005

Race To Linux Winners!

Hoy han publicado los ganadores del concurso Race To Linux y es muy grato encontrar a un mexicano entre los ganadores.
Héctor Armando Rodríguez Esparza resultó ganador en la tercera versión de la contienda. Héctor usó Grasshopper para hacer la migración de Reports Kit para ejecutarse sobre Linux.
Otras tecnologías consideradas para la migración fueron Mono y PHP.
Así pues, una felicitación enorme a Héctor.

jueves, octubre 06, 2005

Primera Estrella DCE2005

Justo acabo de presentar y aprobar el exámen para la 1a Estrella de Desarrollador Cinco Estrellas 2005. Créanme que es un placer. No es una certificación pero como siempre, sirve de medida.
¡Anímense! Además hay que recordar que si se completan las dos estrellas antes del 7 de noviembre de 2005, se puede obtener gratis un Visual Studio 2005 Standard Edition.
Para más detalles, visiten la página de la convocatoria.

domingo, octubre 02, 2005

Disculpa Pública

El viernes pasado fue la reunión mensual de la Comunidad .NET del D.F. en la cual tuve la oportunidad de ser invitado como expositor.
A decir verdad, debo reconocer que lo presentado no estuvo al nivel de las expectativas de la audiencia, más numerosa que el regular acostumbrado. No cumplí con lo comprometido. Cualquier justificación me suena excusa.
Me he sentido abrumado desde el momento que salí del local. Los asistentes dedicaron su tiempo de un viernes de quincena buscando compartir conocimiento.
Ofrezco a la Comunidad .NET una disculpa por ese desempeño tan mediocre, por una presentación tan pusilánime.
Espero que la acepten.

lunes, septiembre 26, 2005

Estress e intolerancia

Me duelen los brazos, el cuello y la espalda.
Pasé la última hora explicando a un par de compañeros de la ofi, ya maduros, el uso de un par de utilerás de cifrado en *nix. Me sorprende lo cuadrada que se vuelve una persona con el paso del tiempo. Fue difícil, bastante difícil compartir la idea de telnet, shell script, variables, llaves privadas y públicas.
El desentendimiento, real o fingido, casí me lleva al colapso físico y mental. ¿Seré yo así? Además de batallar con los presentes, se levantó una duda en mi interior ¿Cuando llegará mi límite? ¿Cuando me veré igual que estos dos hombres, rememorando glorias vanas del pasado sin adecuarme al presente?
Me aterra. Me apanica (en la mejor tradición foxista). Y ese el otro nacimiento de mi stress, o tal vez el resfriado, gripa, flú o lo-que-sea que me agobia desde la semana pasada, pero que hoy ha aprovechado completamente el descalabro y cansancio emocional.
Me acabo de tomar dos comprimidos de ácido acetilsalicílico con la esperanza de recobrar la presión normal en mi cavidad craneana. Ojalá y funcionen y sea un buen resultado para este fío y gris lunes metropolitano.

¡Nuevo desafío!

Hoy, en algún momento del día, se abren las inscripciones a la actualización del ya conocido programa Desarrollador Cinco Estrellas. Al igual que los productos se van poniendo al día, esta forma de autoaprendizaje y evaluación también toma nuevos aires.
Desarrollador Cinco Estrellas 2005 además de ponerte al día, te ofrece la oportunidad de conseguir gratis una copia de Visual Studio 2005 Standard Edition si consigues aprobar los exámenes necesarios para conseguir la segunda estrella de este nuevo programa.
También menciona la posibilidad de revalidar exámenes anteriores, así que tal vez no sea tan complicado para aquellos que ya labraron su camino en la versión anterior del DCE.
Pero..... Hoy es la fecha y al momento de publicar este post, todavía no funciona el mecanismo de registro. Espero que arranque a lo largo del día por que yo si me quiero ganar un VS.NET 2005 de a grapa.

miércoles, septiembre 14, 2005

Spring.NET alcanza 1.0

Ahora sí es la buena. En un post anterior comenté acera de la liberación de Spring.NET, pues bien, aquella fue solo un RC1.
Precisamente hoy han anunciado la liberación de la versión 1.0 definitiva, la cual corrige algunos errores y la deja lista para produccón.

martes, septiembre 13, 2005

Programación Avanzada

Después de otra temporada sin escribir debido a varios eventos, retomo el teclado para exponer una duda existencial: ¿Qué es Programación Avanzada?.
Esto, debido a que dentro de los temas que se solicitaron para la próxima reunión de la Comunidad.NET de la Cd. de México se incluyó "Programación Avanzada". Algunos de los expositores ya hicieron sus propuestas, aunque no todos convergemos al mismo punto.
Así que ¿cómo lo definimos?
Si vamos por contrarios, la programación común es la contraparte y eso lo defino como lo que haces todos los días, código simple y llano para acceder a la base de datos, crear clases, formatear cadenas, hacer una entrada en un log. Digo, ¿qué cosa me pondría a pensar? ¿qué es eso que no puedo hacer sin una googleada? En mi caso justo acaba de suceder: criptografía. Para mí eso es avanzado.
Programación de Threads sería otro tema. Remoting otro más. Al final, lo avanzado cae dentro de lo que no conocemos o de lo que reconocemos como una especialidad. Criptografía es una especialidad dentro del tema de Seguridad. Threading es una especialidad dentro de la administración de un servidor. Remoting es una especialidad dentro del campo de la interoperabilidad.
Ya será parte de nuestro trabajo encontrar una especialidad y esperar que otros especialistas compartan su experiencia.

viernes, agosto 26, 2005

CTP liberado de Enterprise Library para .NET 2.0!

Así sin más, el equipo de Enterprise Library pone a disposición de la comunidad la versión August CTP of Enterprise Library for .NET 2.0.
El readme que viene con el archivo, aclara los puntos que se incluyen, lo que funciona, lo que todavía no funciona y sobre todo algo que hizo que saltaran mis ojos: Dependency Injection.
El tan sonado tema, ahora en EL... Interesante, ya que hace poco se anunció la liberación de Spring.NET y todavía más, encontré por ahí Castle Project que es otra implementación más de Dependency Injection.
En una serie de webcast acerca de arquitectura, Avanade, el alma matter de EL, presentó el tema de Frameworks, donde se vió que los servicios que se tienen con EL son meramente de infrastructura, y en su caso, complementó mediante aspectos, otro punto que ofrecen tanto Spring como Castle así que ahora... ¿Cuando introducirán aspectos en EL? El modelo que presentó Avanade es harto interesante, como plataforma de desarrollo empresariales.

sábado, agosto 20, 2005

Comentarios: Pragmatic Starter Kit: Unit Testing in C# with NUnit

Terminé de leer este libro y me ha quedado un excelente sabor de boca. No puedo recomendarlo más. Trata de manera directa y precisa el uso de pruebas unitarias en el contexto de C#, yendo un más allá de la mera sintáxis de NUnit, aclarando sobre todo el como usar las pruebas unitarias, que se debe probar, maneras de anticiparse a los errores, Mock Objects (¿cuál será una buena traducción para esto?) y finalmente una tarjeta con los principios generales y prácticas recomendadas para el uso de las pruebas unitarias que sirve de recordatorio de los temas leídos.
Este libro forma parte de una triada, que toca en los restantes tomos los temas de control de versiones, con sabores CVS y SVN, y la automatización de los procesos de construcción, pruebas y liberación. Me gusta este enfoque centrado en un tema habiendo leído antes libros que tocan varios puntos a la vez. Esto permite una exposición detallada y a la vez breve (el libro tiene 200 +/- páginas) de los temas sin caer en puntos omisos ni breves introducciones.
Otra característica interesante es la oferta del libro en formato PDF o comprar ambas versiones al mismo tiempo. Tenemos así la versión impresa para una buena lectura de noche o en transporte público y la facilidad de traerlo con nosotros en el disco duro del equipo.
En fin, un libro interesante para novatos y experimentados por igual.

martes, agosto 16, 2005

Nueva versión de Spring.NET

Ya está liberada la versión 1.0 de Spring.NET que tiene como principal característica la implementación de AOP además ser la base para los subsecuentes desarrollos.

sábado, agosto 13, 2005

Patrones, fábricas, contenedores: Spring.NET

Spring es la realización del patrón de diseño Inversion of Control, una alternativa para enfrentar la creciente complejidad en la construcción de soluciones, a las cuales se les exige cada vez más flexibilidad y adaptibilidad a las cambiantes situaciones de la industria.
En la edición de Septiembre de MSDN, Griffin Caprio, miembro del equipo que está desarrollando Spring.NET, publica en la columna Design Patterns el artículo Dependency Injection, una breve introducción a los conceptos de Inversion of Control, Dependency Injection y Spring.NET

lunes, agosto 08, 2005

El café es mi tipo

You Are an Espresso

At your best, you are: straight shooting, ambitious, and energetic

At your worst, you are: anxious and high strung

You drink coffee when: anytime you're not sleeping

Your caffeine addiction level: high

martes, agosto 02, 2005

Patrones de Diseño.

Recién leí en la edición del mes de julio de MSDN Magazine la columna Behind The Scenes que trató acerca de Discover the Design Patterns You're Already Using in the .NET Framework.
Los patrones de diseño son de aquellas cosas que no siempre se entienden la primera vez. Muchas veces nos ayuda verlos ya implementados y en el caso del artículo, como se implementaron en la BCL de .NET.
Una vez conocidos, tiene uno la urgencia de aplicarlos para todo lo que nos va apareciendo (un singleton aquí, strategy por allá, command ¿por qué no?), después de un tiempo, nos recordamos una vez más que todo en exceso es malo. Además de la equivocada idea de que aplicar un patrón de diseño, es copiar el código, perdemos de vista que los patrones de diseño se aplican durante el diseño, no se obvian y se corta y pega código al momento de la construcción.
Los patrones que se mencionan en el artículo son los clásicos de Gamma et alias. Muchos los consideran los "creadores" de los patrones, aunque realmente este concepto viene de otra disciplina, la arquitectura y existen otras fuentes de patrones.
Microsoft por su parte, desde el inicio de Patterns & Practices, ha promovido algunos conjuntos de patrones, así tenemos a Enterprise Solution Patterns Using Microsoft .NET, los Data Patterns y finalmente, Integration Patterns.
Patrones de Diseño. ¿Cuál es el mejor modo de usarlos? Conocerlos, entenderlos y aplicarlos sin hacer "copiar y pegar".