martes, 29 de septiembre de 2009

Frases:

"La ciencia de la computación no trata sobre las computadoras más de lo que la astronomía trata sobre los telescopios."

Para leer: uno, dos y tres.

martes, 22 de septiembre de 2009

Frameworks en PHP... y otros lenguajes también

El framework... una de esas palabras que muchos informáticos usan pero que pocos saben qué es de lo que realmente se trata. Tal es así, que en muchas conversaciones nos tenemos que agarrar a la definición para que la cosa no migre al Reino Vegetal, específicamente para el lado de los tomates.

Pero no es que los interlocutores no se informen, o que sean nóveles en este campo, sino que muchos de ellos han pasado por la experiencia de usar reconocidos frameworks, de los que parece que sus creadores quisieron reinventar la informática partiendo de su (buen) conocimiento de las computadoras y algún lenguaje de programación, pero no teniendo muy en claro de qué se trata esto de los frameworks.

Entonces, vamos a la definición, como punto de partida: un framework representa una arquitectura de software que modela las relaciones generales de las entidades del dominio. Provee una estructura y una metodología de trabajo la cual extiende o utiliza las aplicaciones del dominio. Es decir, un framework está específicamente orientado a resolver o extender una solución general de un dominio de problemas.

Y acá tenemos otro escollo para comprender de qué estamos hablando: qué es un dominio en estos términos? Hasta la propia Wikipedia carece de la defición en este contexto! Sin embargo aborda el tema en su artículo sobre Lógica de Descripción, que nos viene muy al caso.

Como definición breve de "dominio" o mejor dicho "dominio de aplicación", podemos decir que es un área del conocimiento acotada que trata de una temática en particular, como por ejemplo el dominio de aplicación de los sistemas para laboratorios farmacéuticos.

Entonces, un framework es un conjunto de bibliotecas (siguiendo el paradigma de la Programación Esctructurada) o un concunto de Clases (siguiendo el paradigma de la Programación Orientada al Objeto) que resuelven un problema de un dominio de aplicación.

Al fin, hemos arribado a una definición.

Bien, ahora, seamos críticos con algunas piezas de software. En PHP, lenguaje mayormente usado para la web, hay muchos, muchísimos framework "para el desarrollo de un sitio web", pero como se ve, es un dominio tan genérico y tan vasto, que no pueden resolver nada concreto. No es lo mismo una web para comercio electrónico que una web de profesionales de la salud: no son el mismo dominio, por tanto, las relaciones entre los diferentes elementos del dominio no será la misma, como de hecho no lo son tampoco los elementos en sí.

Si vamos a desglosar algunas tareas que son comunes a los sitios web, resulta que solamente nos podemos quedar con algún aspecto de la interfaz con el usuario, o con algún aspecto del recupero y modifición de datos, pero en tal caso estaremos usando un framework para interfaces gráficas web y un framework para persistencia de Objetos, que tendremos que integrar y al que tendremos que agregarle el conocimiento, las restricciones y las relaciones con los diferentes elementos del dominio, que será el comercio electrónico o los profesionales de la salud.

Escribir un framework es una tarea apacionante, por su complejidad y belleza, pero no es una tarea que cualquiera pueda encarar. Kent Beck afirma que no tiene sentido diseñar un framework si no se han resuelto ya exitosamente al menos tres sistemas de un dominio de aplicación. Recién en ese momento podremos hacer las generalizaciones y abstracciones suficientes para tener una pieza de código extensible que refleje las interelaciones entre los elementos del dominio.

Por todo esto, cuando un framework se presenta para resolver un problema genérico o demasiado amplio, hay que detenerse y al menos sospechar.

miércoles, 16 de septiembre de 2009

El Kindle (o como una corporación tiene más poder que un Estado)

Muchos de Uds ya conocen al Kindle, el lector de libros electrónicos de Amazon. Para los que no lo conocen, bueno, es un lector de libros electrónicos que permite comprar on-line libros del catálogo de Amazon gracias a su conexión Wi-Fi, lo que le posibilita usar también algunos servicios en línea, pero lo importante es que es para leer libros.

Nuestra reflexión sigue a la historia del borrado de un libro, y se resume más o menos así:

  • El 18 de Julio del 2009 Amazon sin previo aviso borra de los Kindle las copias de "1984", la novela de George Orwell, por un pleito con el titular del copyright, que no le permitía la distribución electrónica del libro.

  • El 24 de Julio del 2009 tras las múltiples quejas de sus usuarios y un par de demandas insignificantes (parece que alguien perdió las notas que tomaba del libro para un trabajo de la universidad) el CEO de Amazon, Jeff Bezos, se disculpa y promete que la empresa va a tomar "mejores desiciones en el futuro".

  • Después de tener a la prensa y a los usuarios en contra, Amazon decide el 3 de Septiembre devolver el libro a quienes lo habían comprado, acreditándoles u$s30.00 para que elijan ese u otro o enviarles un cheque a su casa.

A todo esto los blog y varios medios aplauden "la cálida disculpa" de Jeff Bezos y ahora ovacionan la decisión de devolver los libros borrados, como muestra de que el gigante de los libros es capaz de reflexionar y escuchar a sus usuarios y consumidores.

Bien, sin embargo, hay algo terriblemente mal en todo este asunto: cómo es que una empresa puede retirar a sus cliente el objeto ya comprado sin su consentimiento? Si esto fuera un libro impreso, hubiera sido como meterse en casa de cada cliente para llevarselo! Que el libro sea digital y no impreso en formato árboles muertos no significa que no sea una "cosa" (es decir, no es un servicio que unilateralmente puede dejar de prestarse).

Pero además en los comunicados de prensa Amazon sostuve que "We are changing our systems so that in the future we will not remove books from customers' devices in these circumstances." (Estamos cambiando nuestros sistemas para que el el futuro no removamos los libros de dispositivos de los clientes en estas circustancias), lo cual es aterrador porque significa que están pensando en otras circunstancias en las que sí borrarán lo comprado de todas formas.

Todo esto pasando aterradoramente por encima de toda cuestión ética, moral y legal, además de mostrando que una corporación tiene ingerencias muy superiores al territorio de un estado. Irónicamente "1984" en su distopia ilustra las consecuencias de un poder totalitario que es capas de manejar la información, los libros y hasta el significado de las palabras.

Mientras Amazon conserve la capacidad de hacer estos atropellos, atentando contra la intimidad y la propiedad privada impunemente, algo estará mal... y si después la gente se muestra feliz por el regalo (o soborno) de u$s30.00 por un libro que habían pagado u$s5.00, algo estará muy mal entre nosotros.


PD: no pudimos dejar de recordar el ensayo de Richard Stallman "El derecho a leer". Es cortito y entretenido, pero resulta que está dejando de ser ficción...

viernes, 11 de septiembre de 2009

Uso de GNU/Linux en empresas de Mar del Plata

En los últimos meses en Pegasus Tech hemos diseñado y ejecutado varias migraciones a GNU/Linux en empresas de Mar del Plata.

En realidad, no nos llamaban para "migrar", sino para legalizar las instalaciones informáticas existentes, ya que se daba el caso en algunas empresas que usaban software obsoleto o sin licencia.

No es que las empresas digan "vamos a usar software ilegal para ahorrarnos un dinero en licencias", sino que simplemente por inercia y desconocimiento, comienzan con algún sistema sin la debida licencia (porque les vendieron la PC con software ilegal o porque llamaron a "Cacho" que se los instaló por $20.00) y luego de invertir en algún sistema de gestión o por la cantidad de correos y documentos acumulados, sencillamente cambiar no es una alternativa evidente.

Peleamos no contra decisiones mal tomadas, sino contra decisiones que no tomó nadie... y ahora hay que pagar las consecuencias. Estas consecuencias son económicas, por tener que comprar todas las licencias juntas o por la falta de eficiencia en el trabajo al cambiar todos los sistemas a la vez, pero siempre es un costo.

Comenzamos haciendo un Estudio de Viabilidad, en el cual se determina el porte de las PCs y el software que usan para poder evaluar que alternativas hay. Luego se estudian las alternativas viables: comprar todas las licencias, ahorrarse la suite de oficina y pasar a Open Office, o cambiar completamente el entorno y pasar a un GNU/Linux.

El empresario decide, pero no con la mano en el corazón, sino con la mano en el bolsillo. Generalmente se pasa a un esquema de Software Libre puro o a un esquema mixto razonable... y no está mal: el objetivo de una empresa es ganar dinero.

Los escollos más importantes a la hora de la implementación consisten en hacer que sistemas de gestión privativos sigan funcionando. A veces se los puede correr emulados usando Wine o DOSEMU, o veces todos los usuarios acceden a un Servidor de Acceso Remoto que corre la aplicación nativamente para lo que usamos XPUnlimited por ser una buena alternativa desde lo técnico y desde lo ecnomómico (y de la que estamos peleando por una representación en Argentina) y unas pocas veces no hay que hacer nada porque los sistemas tienen una interfaz web y corren desde un navegador.

Hay PyMEs que migramos completamente, porque a pesar de lo que los autores del software de gestión dicen, sí funciona sobre Wine; hay veces en que hay que comprar costosos servidores de bases de datos y sistemas operativos sobre los que funcionan, pero siempre hay una economía considerable en licenciamiento y mano de obra al usar Software Libre.

jueves, 3 de septiembre de 2009

Charla de Richard Stallman en Mar del Plata

Estuvo Richard Stallman en Mar del Plata el pasado Martes 1ro de Septiembre del 2009 en el Teatro Diagonal, con un charla titulada “El software libre en la ética y la práctica. Una educación informática libre”.

Con un discurso coherente y un actuar consecuente, RMS se refirió al Software Libre, y sobre todo a los motivos sociales que lo impulsaron a crear el movimiento GNU.

Según estimaciones de gente del lugar, asistieron unas 300 personas al llamado de liberar el software, a pesar de ser un día y un horario en que no toda persona puede participar, y a pesar también de que la cancelación de esta charla en la UTN hizo involuntariamente creer a mucha gente que Stallman no iba a venir a nuestra ciudad.

Respecto al discurso, Stallman es sin dudas una persona, una personalidad y un personaje, capaz de caricaturizarse a sí mismo como San IGNUcios para lograr una efectividad sin par en el mensaje: solo el Software Libre garantiza la Libertad y la Privacidad de las personas en un mundo cada vez más tecnificado y donde el Software se ha vuelto ubicuo.

También respecto a la última vez que estuvo, en la que el movimiento del Software Libre era tildado de "comunista" sobre todo por el FUD sembrado por las corporaciones, esta vez se encargó de aclarar que "el Software Libre es democrático, porque cualqueira puede participar, y de libre mercado, porque intenta limitar el monopolio de las grandes empresas que esclavizan a sus usuarios".

En la segunda fotito, que Stallman organizadamente concedió a sus seguidores, de izquierda a derecha: Desconocido, Richard Stallman, un amigo de Luciano del que no recuerdo el nombre, Carlos Rico, Gustavo Carr (medio tapado), Leonardo Tadei, Luciando Soprano y Fernando Rico.

Si alguien sabe dónde están las fotos de la fotógrafa elegida had hoc y la filmación de la charla, avise!!!