Showing posts with label Anuncio. Show all posts
Showing posts with label Anuncio. Show all posts

Sunday, October 5, 2008

Hablemos de Ingeniería



El viernes pasado dí una pequeña charla en el Laboratorio de Investigación de Software de mi facultad (UTN - FRC) y duro poco más de hora y cuarto.

El objetivo era dar una introducción al proyecto LayerD a quienes no lo conocían.


Los temas de la charla fueron:

  • ¿Qué es LayerD? : una introducción en dos minutos explicando que se trata básicamente de lenguajes de programación con algunas características "novedosas" como compiladores multi-stage, extensibles y modulares.
  • Motivaciones del Proyecto : se explico como se tuvieron en cuenta los problemas actuales a la hora de implementar software, lo que se espera para el hardware de las proximas decadas y el software que se viene en los proximos años. Todo ello influyo en el diseño de LayerD.
  • Hablemos de Ingeniería : a lo largo del tiempo aprendi que no es sencillo explicar el framework LayerD y menos justificar sus características simplemente nombrandolas, por lo tanto me tome la mayor parte de la charla para hablar sobre ingeniería de software, compararla con otra ingeniería (civil) y analizar las limitaciones y frustraciones actuales de nuestra querida profeción, también introducir sobre como sobrellevar estas límitaciones. Se introdujo al tema de diseñar lo que llamo arquitecturas "bidimensionales" de software, donde no sólo se tiene en cuenta la "dimensión de tiempo de ejecución" (es decir todo lo que sucede cuando el software se esta ejecutando) sino también empezar a considerar la existencia de otra dimensión la "dimesión física". Aplicar tecnicas conocidas de diseño como la separación en capas también en esta dimensión física del software nos permite elevar considerablemente su nivel de abstracción y abrir la puerta para una mayor reutilización, tiempo de vida y menores costos de mantenimiento del software.
  • Paradigmas al Vuelo : se hablo rápidamente del impulso que se le esta dando a "nuevos" (no tanto) paradigmas que impulsan el desarrollo de software más abstracto como la orientación al lenguaje, programación declarativa, lenguajes de dominio especifico, programación intencional, model driven development, etc. Y como con LayerD es posible implementar software bajo estos paradigmas.
  • El Diseño de LayerD : Se explico brevemente el diseño y como todo encaja con los requerimientos y los problemas existentes en la ingenieria de software. Si todo salio como esperaba, se mostro porque LayerD tiene el diseño que tiene y como cada pieza y funcionalidad es necesaria.
  • Ejemplos : Se mostraron diversos ejemplos.
  • El Futuro / Lo pendiente : Se hablo de toda la inmensa lista de pendientes dentro del proyecto y como esto es apenas un punto de partida. Se invito a quienes quieran participar a ayudar a completar el proyecto o tomar lo aprendido para sus propios proyectos.
Para quienes le interese dejo las diapositivas aquí (no son tan interesantes sin el "speech" supongo je). Por cierto, si sos de la UTN recorda que todos los viernes estamos dando charlas en nuestro laboratorio, además compartimos galletas y café. Seas o no alumno de la UTN podes entrar a nuestra pequeña red social para enterarte de varias cosas que pasan en nuestro laboratorio.

Ya no pongo fechas (demasiado trabajo y terminando de cursar) pero en cualquier momento publico los manuales y actualizo la documentación además del SDK y los fuentes publicos.

Saludos.

Tuesday, July 22, 2008

Primer Upload de Código Fuente

Como se prometió con anterioridad empecé a subir el código fuente del proyecto LayerD para que esté disponible bajo licencias Open Source.

Los links a SourceForge:

En el primer upload de código subí los siguientes componentes:

  • Compilador Meta D++
  • Zoe CodeDOM para C++ y C#
  • Modulo de Salida Zoe para .NET
  • Modulo de Salida Zoe para Meta D++ (para compilación interactiva)
  • Generador de CodeDOM para C++ y C# (utilidad que genera las clases del CodeDOM a partir del esquema del lenguaje Zoe en XSD)
  • Una librería común usada por los módulos de salida Zoe y el compilador Zoe (cuando estos son programados para en .NET)

Para todos estos componentes utilice la licencia BSD, licencia que otorga enorme flexibilidad ;-).

Cuando revise un poco el código del compilador Zoe lo subo al repositorio de SourceForge, esta porción de código pienso usar licencia Eclipse o Mozilla (un poco más "restrictiva" que la BSD). El código de los modulos subidos varía en calidad ya que fue desarrollado durante diversas etapas :-), un poco a la apurada, un poco bien, un poco "temporal".

Bueno, los post están pobres últimamente, pero estoy preparando cosas interesantes y aplicaciones prácticas reales como software que corre en .NET escritorio, ASP.NET y J2EE sin cambios. Tampoco me he olvidado de la documentación que también la estoy revisando y actualizando. Por cierto, aparentemente LayerD se usará en una parte de otro proyecto comercial (es decir un proyecto "real" de desarrollo) más adelante les confirmo.

Por cierto, cualquier consulta sobre el código me consultan, ni hablar si quieren colaborar en algo serán más que bienvenidos ;-)

Saludos. Alexis.-

Tuesday, April 29, 2008

Binarios de LayerD - SDK 0.5.0 Alpha

Al fin no más promesas o fechas tentativas, esta vez release de verdad para todo el mundo. Veo que es tarde pero todavía es Martes 29 de abril de 2008 en Córdoba Argentina, como prometí el primer release de binarios con un "mini-SDK" de LayerD se encuentra disponible a partir de ahora y para siempre para todo el mundo que lo encuentre interesante.

Primero, el link para bajar los binarios desde SourceForge: Download LayerD SDK 0.5.0

Dividiré esta nota en dos partes: sentimentalismo y notas técnicas.
Si no le interesa mis pensamientos o sentimientos al respecto de éste release vea directamente las notas técnicas.

Sentimentalismo del Release

Desde que LayerD en su forma actual fue una idea halla por fines del año 2002 hasta ahora han pasado largos años y mirando para atras se sienten muchas cosas.
No fue sencillo desarrollar esta humilde pero pretenciosa tecnología cuando todo es realizado a pulmón. Sin embargo, a lo largo del camino que fue - y seguira siendo - el desarrollo de éste proyecto me encontré con muchas manos amigas que me ayudaron y bancaron de diversas maneras.
Ya no recuerdo cuantas veces pensé en tirar todo el proyecto literalmente a la mierda, "para que esforzarme con esto tanto". Pero por alguna razón todas esas ideas terminaron plasmandose en lo que hoy es LayerD como dije, en gran medida gracias a todas las personas que me ayudaron o apoyaron a lo largo de este tiempo.
Tengo que agradecer a mucha gente, en primer lugar a mi familia y a mis padres a quienes les debo casi todo lo que soy, en segundo lugar a Dios por permitirme vivir tantas cosas grandiosas, a todos mis amigos de siempre que implícitamente o explícitamente son un gran apoyo para mi siempre. A quienes siendo alumnos de la UTN-FRC se animaron a sumarse al proyecto ya empezado de otro alumno en el Laboratorio de Investigación de Software de la UTN, en párticular a Lucas Forchino, Demián Odasso y Alejandro Romero quienes me dieron una gran mano y aunque no lo sepan mucho animo para continuar con el proyecto, también a muchas otras personas que se acercaron al proyecto a todos ellos gracias!.
También quiero agradecer a Juan Carlos Vázquez quien me apoyo para poder llevar el proyecto desde mi casa al laboratorio de la facultad lo cual significo posiblemente que el proyecto no se cayera antes de dar algún resultado.
No puedo no agradecer enormemente a mis actuales compañeros de trabajo Javier Dall'Amore, Pablo Frias y Mateo Bengualid quienes se convirtieron en los tres primeros programadores de Classfactorys del mundo jaja - a parte de mi claro - y realmente no se quejaron cuando encontraron algunos de los infinitos bugs en el compilador Meta D++ y Zoe, gracias a ellos ahora son herramientas que se dejan usar mucho más!!
Seguro me estoy olvidando de agradecer a más personas, si sos uno de ellos perdón!!!

Notas Técnicas

El release es considerado SDK 0.5.0 por la sencilla razón de creer que en la actualidad los compiladores y herramientas entregadas poseen quizas la mitad de la madurez y funcionalidad que me gustaría tuvieran. Queda muchisimo trabajo por delante para terminar de implementar todas las funciones del lenguaje Zoe y Meta D++, los modulos de salida (bueno aquí el trabajo literalmente puede ser infinito por que se puede tener cuantos módulos quieras :-), lo mismo que en los meta-lenguajes y las líbrerias de classfactorys o clases ordinarias jeje ).

Recuerden lo siguiente antes de ponerse a jugar con LayerD:
  1. Se escribe el programa en Meta D++ (actualmente el único compilador de alto nivel LayerD disponible públicamente)
  2. Se compila el programa con el compilador de Meta D++ (metadppc.exe).
  3. Se compila el resultado (programa .zoe) con el compilador Zoe (zoec.exe).
En el instructivo incluido en el paquete se explica brevemente la utilización de los compiladores, vea la ayuda de linea de comandos para más información - no todos los parámetros de los compiladores funcionan, la mayoría si.

Sólo distribuyo el modulo de salida a .NET porque es el más trabajado y depurado, el módulo de salida Java seguramente estará público prontamente pero deberán de esperar al menos unas semanas dependiendo del tiempo que tenga.

Y los releases a partir de ahora serán seguidos con cada versión un poco más completa y con menos bugs!! de los compiladores. Por favor, tengan en cuenta que en el release actual varias funciones importantes no están implementadas y no pueden considerarse versiones estables, ni siquiera betas para mi gusto - aunque muchas empresas comerciales lanzan "release candidates" en condiciones muy dudosas - prácticamente todo el código esta escrito aprendiendo sobre compiladores - antes no había desarrollado otros lenguajes o compiladores son mis primeros :-) - y en tiempo libre fuera del estudio y el trabajo. Más halla de estos detalles los compiladores permiten desarrollar cosas serias, de hecho ya hay varios miles de líneas programadas en LayerD siendo la mayoría de ellas Classfactorys :-), y todo eso en el marco de un proyecto comercial real, por tanto no hay pretextos para no probarlos!! ;-)

Lo se, la documentación es escasa, pero lo ire subsanando de a poco, en una o dos semanas subiré un manual de Meta D++ y una versión actualizada de la especificación de Meta D++ (la actual en el sitio LayerD.net no esta actualizada), también estaré actualizando el sitio web LayerD.net que ahora no tuve tiempo de hacerlo.

En lo subsiguiente empezaré a poner publicamente en SourceForge el código del proyecto. Empezando por el compilador Meta D++ y el Modulo de Salida Zoe a .NET, luego el código del compilador Zoe. Todo con licencias Open Source.

Bueno, espero alguien pueda disfrutar y aprovechar estas herramientas!!! Espero el feedback!!

Saludos !!,
Alexis Ferreyra

Wednesday, April 2, 2008

Hola gente!, Mi nombre es Alexis Ferreyra y en éste blog encontraran artículos, noticias e información en general sobre la tecnología LayerD.
Para quienes no conocen LayerD iran dedicadas las primeras entradas, pero básicamente (si se puede resumir el proyecto en pocas palabras) LayerD es un framework que pretende ser compatible con tecnologías populares en la actualidad como Java o .NET al tiempo de incorporar relativamente novedosas técnicas de programación - o más bien olvidadas para muchos programadores - que le cambiaran la vida como programador y revolucionaran al mundo de la informática... ya que estamos exagerando (bien parece una locura esto, lo se). Ok, se que divagaciones así no les dicen nada y sólo parece el discurso barato de un político por lo cual lo explicaré en la siguiente entrada. Mientras tanto si quieren más información (lo cual dudo a partir del ridículo resumen) pueden visitar el sitio web del proyecto layerd.net el cual en estos días debe estar dado de baja por que me olvide pagar la maldita renovación !!!!
Pero espero para cuando lean esto ya este dado de alta nuevamente ;-).