17 febrero 2008

No dejemos de crear código

Como siempre después de un año de haberse publicado este artículo, hoy logro entenderlo...

En los años 20, Hollywood tenía problemas: había escándalos por doquier y era opinión generalizada que en las películas se abusaba del sexo y la violencia. Por ello, los estudios, convencidos de que el gobierno actuaría al respecto, crearon la oficina Hays con la misión de supervisarse a sí mismos y limpiar la pantalla de plata. La oficina Hays estableció unas reglas que abarcaban todos los ámbitos -desde el uso del lenguaje correcto hasta las demostraciones de afecto- y se convirtió en el brazo principal de la censura no gubernamental del mundo del cine.


A mediados de los años 30, guionistas y directores reaccionaron ante estas restricciones de forma creativa. Una de las maneras de soslayar los límites impuestos fue la invención de las comedias de enredo, un género nuevo que incluía romances, situaciones absurdas y comentarios finos e irónicos. En ellas, no había peligro de ver besos lascivos; las batallas amorosas no tenían cabida en estas películas. Además, el diálogo era tan rápido y moderno que los censores apenas podían comprenderlo. Resultado: clásicos como Sucedió una noche, Twentieth Century, y La fiera de mi niña nunca se hubieran concebido si guionistas y directores hubieran tenido la libertad de hacer todo lo que sus "indecentes" mentes deseaban.

Con frecuencia, la creatividad florece cuando se imponen al creador límites estrictos, y no cuando disfruta de libertad. Los ingenieros, al igual que los artistas, saben de esto. Cuando un tanque de oxígeno explosionó en el Apolo 13 mientras éste se dirigía a la Luna, se necesitaron buenas dosis de creatividad e ingenuidad para solucionar el problema. La creatividad surgió directamente de la falta de materiales disponibles.

Recordé esta paradoja cuando hace poco disfrutaba de las operaciones de programación más divertidas y estimulantes que he hecho nunca, y sin usar siquiera un lenguaje de programación. Últimamente, me entretengo con XAML, el lenguaje de marcado de aplicaciones extensible, que conforma una parte importante de Microsoft® Windows® Presentation Foundation.

XAML permite el acceso a clases eficaces de Windows Presentation Foundation para diseñar y visualizar gráficos y animaciones. XAML puede englobarse dentro de los lenguajes de programación declarativos. Pero, si se compara con lenguajes de programación más familiares, XAML carece de características de programación básicas. En, XAML, no hay bucles, no hay condicionales y no se pueden sumar ni multiplicar cifras.

Y, sin embargo, cuanto más me limitaba a usar solo XAML para solucionar los problemas -como si viviera en un mundo en el que solo existiera XAML-, mis soluciones eran más creativas. Descubrí que podía definir transformaciones de gráficos compuestos en XAML que podían multiplicar matrices, de tal forma que podía disponer de todas las sumas y multiplicaciones que necesitaba. Descubrí, también, que podía simular matrices en XAML; para ello, podía usar un cuadro de lista que incluyera varios elementos y después podía indexar estos elementos con enlaces de datos.

El logro del que me siento más orgulloso es una aplicación de reloj XAML. Quería dibujar marcas en círculo alrededor de la circunferencia del reloj. Habitualmente, un reloj tiene 12 marcas grandes y 48 marcas pequeñas, pero sin un bucle "for loop" estas marcas necesitarían 60 elementos XAML separados. Desgraciadamente, no conseguía crear dicha marca repetitiva. Estuve dándole vueltas a este problema durante días hasta que hice un descubrimiento. Podía crear exactamente las marcas que quería dibujando dos círculos con líneas intermitentes. No solo funcionó, sino que además me di cuenta de que había conseguido lo que quería con solo dos objetos gráficos, en lugar de tener que usar los sesenta objetos que requieren la mayoría de las aplicaciones de reloj.

Escribir con XAML es divertido. Escribir con XAML es estimulante. Escribir con XAML agudiza el ingenio. Y, sin embargo, para algunas personas escribir con XAML es una aberración. XAML no está pensado para escribir manualmente. Como dijo uno de los blogger de Microsoft "XAML es para herramientas", y los meses anteriores a su lanzamiento, algunas de las funciones de XAML se eliminaron porque solo beneficiaban a las personas y no a las herramientas. Por supuesto, puede que herramientas de creación de XAML, como Visual Studio® y Microsoft Expression® Interactive Designer, estimulen nuestra creatividad en cuanto a la estética, pero no hacen nada por nuestra creatividad para codificar.

¿Se preocuparán los futuros programadores de aprender sintaxis XAML? ¿O pensarán que se trata de "cosas raras de XML" que Visual Studio crea para guardar el diseño de los botones y cuadros combinados?


Los diseñadores interactivos y los creadores de códigos tienen, definitivamente, un lugar en el mundo moderno de los programadores. Estoy convencido de que ayudan a ahorrar mucho tiempo. Pero no olvidemos quiénes somos. Somos programadores. Somos expertos en la escritura de códigos robustos. Disfrutamos obteniendo el máximo efecto con el código mínimo. Podemos conseguir de lenguajes como XAML resultados para los que no estuvieron diseñados. Podemos obtener de ellos un gran partido.


Fuente del Articulo: MSDN Magazine Febrero 2007.

Charles Petzold es editor colaborador de MSDN Magazine y autor de Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation (Microsoft Press, 2006).

16 febrero 2008

Que empresa apostaría un Dólar o un Euro a un DBM de 620 kb



Si amigos a aunque ustedes no lo crean, muchas lo han hecho, utilizar un manejador de base de datos de 620 kb. Algo que inicialmente fue creado para dispositivos móviles, ya esta siendo utilizado para manejar base de datos Web.

Empresas que utilizan db4o

INDRA, Sistema de Control de Trenes de Alta Velocidad de Misión Crítica - El Framework del Sistema de Control en Tiempo Real esta compuesto por más de 30.000 objetos en memoria y 30 clases, con 80 Terabytes de información fluyendo eventualmente a una base de datos relacional Oracle en el nivel corporativo. La velocidad de db4o permite al sistema procesar más de 200.000 objetos por segundo. Los beneficios de db4o van más allá de la velocidad; db4o está optimizado para correr en un espacio ínfimo y requiere administración cero. Adicionalmente db4o es nativo para ambos frameworks de programación Java y .NET, permitiendo a los desarrolladores almacenar objetos directamente.

BOSCH Sigpack: db4o Controles Complejo, de Alta Velocidad de embalaje Robots. Principales criterios de selección para BOSCH Sigpack Systems AG fueron:
  • Db4o de alto rendimiento, lo que permite la gestión de un gran número de objetos
  • Db4o la fiabilidad demostrada
  • Acelerado tiempo de salida al mercado a través de db4o como la facilidad de uso y sencilla aplicación

Más allá de ofrecer la velocidad y la fiabilidad, db4o también está optimizado para funcionar en lo mínimo y requiere cero administración. Además, db4o es nativo de Java y ambas. NET marcos de programación, lo que permite a los desarrolladores almacenar objetos directamente.

Seagate Technologies, el líder mundial en discos duros de, dio su sincronización y Mirra Personal Server Compartir un impulso en la eficiencia y el desempeño con db4o.

"Sin duda, de acuerdo con db4o por el uso debido a su desempeño, tanto en términos de memoria y latencia transaccional; su escalabilidad en términos de la cantidad de elementos que puede poner en la base de datos y su fiabilidad".

Postbank, el banco alemán de venta al por menor, se encontraba bajo la presión del tiempo para mejorar su aplicación de consultoría financiera a fin de que su fuerza de ventas puede ser productivo, así como fuera de línea en línea. Db4o era el ideal en forma.

"Necesitábamos un interfaz de base de datos fácil de usar que no requieren un largo período de implementación hasta que nos ha permitido conseguir nuestros aplicación implanten lo antes posible. Se evaluaron y compararon diferentes soluciones pero nada estuvo cerca en términos de La facilidad de ejecución y desempeño como db4o "


Clarity Medical, en Pleasanton, California, se basa en db4o para mejorar la salud de los ojos de los bebés con su equipo “Retcam II Wide-Field Pediatric” desprendimiento de la retina de imágenes de dispositivos médicos.

"Debido a que los datos se registran y almacenan precisamente hemos sido capaces de encontrar tumores que se han perdido con el método tradicional"

Entre otras…

Conclusión

Este pequeño manejador de base de datos (dbm) esta creciendo a un ritmo acelerado gracias a la comunidad que se encuentra detrás de esto. Db4o no es top de las ODBMS, pero tampoco esta en el fondo, pienso que es un producto que no se debe de perder de vista.

Recursos y fuentes del articulo

http://www.db4o.com/

http://www.db4o.com/espanol/