Archive for the '10790' Category

Física Cuántica, ALT.NET Hispano VAN

Tuesday, July 17th, 2012

En este siglo he vuelto a estudiar física, y en particular, física cuántica: su formalismo, modelos, historia, conceptos. Es un tema muy interesante, y cuyo estudio me ha traido muchas satisfacciones. Así que gracias a la gente de @altnethispano (http://altnethispano.org) el sábado que viene, 21 de Julio, a las 18:00 GMT (15 hs acá en Argentina), voy a dar una charla virtual sobre el tema:

La comunidad ALT.NET Hispano (http://altnethispano.org) realizará una VAN sobre Física Cuántica para Desarrolladores de Software, con Angel “Java” López.

Fecha: sábado, 21 de julio de 2012 a las 18:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas.

Pueden plantear sus comentarios e inquietudes sobre el tema de la reunión en: https://groups.google.com/d/topic/altnet-hispano/lk4vbEpWdJI/discussion

Para mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano

Pueden vincular el Google Calendar al suyo (http://screenr.com/nr7)

When

Sat Jul 21 3pm – 5pm Buenos Aires

 

El enlace para asistir es http://bit.ly/VANHispano

La idea es dar una charla para desarrolladores o cualquier persona interesada que no “le asuste” ver una fórmula. Hay mucho libros de divulgación y varios son muy buenos, pero veo que se quedan cortos en explicar lo que es la cuántica porque le “huyen” a poner modelos matemáticos. En la charla veremos (vean que es un temario ambicioso):

– Modelos, Realidad y Ciencia
– Ejemplos ideales de 2 estados
– Estado vs Vector de Estado
– Estado y Vectores de Base
– Covectores, bra-kets, notación de Dirac
– Ejemplos de n-estados
– Estados Estacionarios
– Experimentos que llevaron a esos modelos
– Espín (y algo rápido de espín y estadística)
– Evolución en el tiempo
– Pasaje al límite
– Función de onda
– Operadores
– Hamiltoniano
– Valores Medios
– Algo rápido de historia (Heisenberg, Schrodinger, Dirac, de Broglie, Planck, Einstein)
– Bibliografía (no se si llegamos a comentarla, solamente citarla en la presentación, que quedará pública)
– Cuántica y Relatividad
– Pasando de Mecánica Cuántica a Teoría Cuántica de Campos
– Diagramas de Feynman (no creo que llegue a lagrangianos)
– Perspectiva Actual

Si bien gran parte de la charla es la presentación de la llamada “mecánica cuántica”, la llamé “física cuántica” porque va a tratar de ir un poco más allá de la formulación de Heisenberg y Schrodinger, llegando a Dirac, Feynman y otros.

Algunos post que he publicado sobre el tema, desde:

Física Cuántica (Parte 11) Filtrando Estados Base

Nos leemos!

Angel “Java” Lopez
http://ajlopez.wordpress.com
http://ajlopez.zoomblog.com
http://www.ajlopez.com
http://twitter.com/ajlopez

VAN en Alt.NET Hispano: Desarrollando una Aplicación con TDD

Monday, June 18th, 2012

El sábado que viene, 23 de Junio, estaré en una VAN (reunión virtual) organizada por el grupo Alt.NET Hispano, tratando el tema de cómo desarrollar una aplicación con TDD. El horario es el habitual 18pm GMT, en Buenos Aires tenemos GMT-3, y es 3 de la tarde hora local.

Quiero mostrar cómo uso habitualmente TDD para ir desarrollando una aplicación. Usaré C#, una interfaz con ASP.NET MVC, y seguramente algún proyecto de clases donde ir poniendo el dominio. Estoy pensando más en detalle el dominio, quisiera uno que pudiera abarcar en las dos horas que tenemos disponibles, y que tuviera algunas reglas.

Para mí, es muy importante usar TDD en código en producción. Me ha resultado muy útil, no sólo por la cobertura de tests que me permite refactorizar con confianza, sino por el proceso de diseño del código y de la aplicación en sí. En los últimos años le he agregado también la idea de que lo importante son los casos de uso, y darle menos peso a temas como el diseño de la base de datos que puede aparecer más adelante en un desarrollo ágil, no tiene por qué estar desde el principio.

Ya escribí varios posts sobre desarrollo con TDD y mis proyectos personales públicos prácticamente están todos desarrollados con TDD (pueder ver mi cuenta de GitHub cómo van avanzando test a test). Pero no había tenido la oportunidad de mostrar esta técnica en una VAN sobre una aplicación y un dominio. Espero que pueda mostrar qué bueno es aplicar TDD desde el comienzo, y cómo nos ayuda en un desarrollo ágil.

Más información sobre Alt.NET Hispano en:

http://altnethispano.org/Inicio.aspx

Sobre las reuniones VAN y cómo participar en:

http://altnethispano.org/reuniones/descripcion.aspx

Las anteriores VAN han sido publicadas (en video) en:

http://altnethispano.org/reuniones/historico.aspx

El calendario de próximo eventos en:

http://altnethispano.org/reuniones/calendario.aspx

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Alt.NET Hispano: VAN sobre Sharepoint practicas y herramientas con Oscar Zárate

Wednesday, February 8th, 2012

El bueno de Oscar Zárate, desarrollador argentino radicado desde hace unos años en la lejana Australia, nos dará una charla virtual (VAN) en Alt.NET Hispano, el próximo sábado. El tema es sobre desarrollo ágil sobre Sharepoint. Oscar nos contará su experiencia en el desarrollo en equipo de un proyecto. Escribió Oscar:

Para todos los interesados en la VAN de este sábado voy a mostrar "que hicimos" y "como hicimos" este sitio

http://financial.markets.nab.com.au

Está basado en SharePoint 2010.

Las herramientas/prácticas que usaron:

  • Continuous integration
  • Continuous Deployment
  • One click deployment
  • MVP pattern para los WebParts
  • Moles

Estos son los datos de la reunión

VAN sobre Sharepoint practicas y herramientas

Fechasáb, 11 de febrero, 19:00 – 21:00 (hora universal. Acá en Buenos Aires es GMT-3, así que será de 16 a 18hs)

Lugar http://snipr.com/virtualaltnet (es reunión virtual)

DescripciónLa comunidad ALT.NET Hispano (http://altnethispano.org) realizará una VAN sobre Sharepoint practicas y herramientas, con Oscar Zarate. Fecha: Sábado 11 de Febrero del 2012 a las 19:00 hrs. Hora Internacional (GMT/UTC), con una duración aproximada de 2 horas. Pueden plantear sus comentarios e inquietudes sobre el tema de la reunión en: https://groups.google.com/d/topic/altnet-hispano/GsMgkNjpUg0/discussion Para mayor información sobre cómo atender la reunión consulten: http://tinyurl.com/van-hispano

Nos leemos!

Angel "Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Azure: Una aplicación simple usando Tables

Wednesday, February 9th, 2011

Continuando con mis ejemplos de Azure, esta vez escribí una simple aplicación web CRUD, usando Tables, con Tables, usando Azure Storage Client.

Es una aplicación de ASP.NET clásico, con esta vista para CustomerList.aspx:

Pueden bajarse la solución desde mi AjCodeKatas Google project. El código está en:

http://code.google.com/p/ajcodekatas/source/browse/#svn/trunk/Azure/AzureCustomers

Si quieren pueden bajarse directamente la versión “congelada” desde: AzureCustomers.zip.

La simple entidad Customer:

public class Customer : TableServiceEntity
{
    public Customer()
        : this(Guid.NewGuid().ToString())
    {
    }
    public Customer(string id)
        : base(id, string.Empty)
    {
    }
    public string Name { get; set; }
    public string Address { get; set; }
    public string Notes { get; set; }
}

Estoy usando la PartitionKey como clave primaria, llenándola con un Guid. La RowKey es el string vacío. En una aplicación menos simple, podría grabar las facturas de un cliente usando la misma Partition Key, identificando cada factura con un RowKey distinto.

Un DataContext está a cargo de exponer un IQueryable de Customers:

public class DataContext : TableServiceContext
{
    public const string CustomerTableName = "Customers";
    public DataContext(string baseAddress, StorageCredentials credentials)
        : base(baseAddress, credentials)
    {
        this.IgnoreResourceNotFoundException = true;
    }
    public DataContext(CloudStorageAccount storageAccount)
        : base(storageAccount.TableEndpoint.AbsoluteUri, storageAccount.Credentials)
    {
        this.IgnoreResourceNotFoundException = true;
    }       
    public IQueryable<Customer> Customers
    {
        get
        {
            return this.CreateQuery<Customer>(CustomerTableName);
        }
    }
}

Noten el IgnoreNotFoundException: si está en verdadero, puedo recuperar un cliente inexistente sin levantar una excepción, y retornar un valor null.

Hay un servicio para acceder y manejar los Customers:

public class CustomerServices
{
    private DataContext context;
    public CustomerServices(DataContext context)
    {
        this.context = context;
    }
    public Customer GetCustomerById(string id)
    {
        return this.context.Customers.Where(c => c.PartitionKey == id).SingleOrDefault();
    }
    public IEnumerable<Customer> GetCustomerList()
    {
        return this.context.Customers.ToList().OrderBy(c => c.Name);
    }
    public void AddCustomer(Customer customer)
    {
        this.context.AddObject(DataContext.CustomerTableName, customer);
        this.context.SaveChanges();
    }
    public void UpdateCustomer(Customer customer)
    {
        this.context.AttachTo(DataContext.CustomerTableName, customer, "*");
        this.context.UpdateObject(customer);
        this.context.SaveChanges();
    }
    public void DeleteCustomerById(string id)
    {
        Customer c = this.GetCustomerById(id);
        this.context.DeleteObject(c);
        this.context.SaveChanges();
    }
}

Noten el uso de Attach con ETag (tercer parámetro) de “*” (any). De esta forma, podemos actualizar el cliente adosando el “creado en memoria” al contexto de datos, sin recuperalo desde la base de datos. Esta forma de hacerlo es viable si tengo todos los datos del cliente, y no me importa sobreescribir cambios posibles que se hubieran hecho en el storage. En muchas aplicaciones uno cambia solamente parte del estado, ante una operación (por ejemplo, cambio de domiciolio). Entonces se recupera el objeto, se cambia parte del estado y se lo graba.

Usando el servico para recuperar los clientes:

CloudStorageAccount storage = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CustomerServices services = new CustomerServices(new DataContext(storage));
this.grdCustomerList.DataSource = services.GetCustomerList();
this.grdCustomerList.DataBind();

Nota: ésta es una aplicación de ejemplo, simple y directa. Una aplicación real debería separar el modelo de vista del modelo de negocio, y posiblemente, usar ASP.NET MVC en la presentación. Escribiré este ejemplo usando MVC. En otra serie (fuera de ésta relacionado con Azura), quiero escribir una aplicación ASP.NET MVC usando TDD.

Próximos pasos en Azure: una aplicación distribuida que calcule un fractar, un web crawler distribuido, un algoritmo genético usando Worker Roles.

Nos leemos!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

Resultado de la ALT.NET Hispano VAN de Programando en Azure

Wednesday, February 2nd, 2011

Ya había adelantado esta reunión virtual en:

ALT.NET Hispano VAN Programando en Azure

Gracias a la gente de la comunidad ALT.NET Hispano, pude participar el sábado pasado presentando Programando en Windows Azure. Pueden bajarse la presentación desde mi Skydrive en AzureProgramming201101.pptx. La presentación se basa en slides traducidos de varias presentaciones del Azure Training Kit (el lunes 31 de Enero fue publicada una nueva versión). Les recomiendo bajarse ese material, porque ahí encontraran ejemplos (la gente de Microsoft los llama “hands-on labs”), explicados, y con instrucciones para reproducirlos paso a paso.

La reunión fue grabada, y pueden ver el video en:

Programando con Windows Azure – ALT.NET Hispano Wiki

Estuvimos viendo conceptos generales de Azure, y luego, usando Visual Studio 2010, el Azure SDK:

Windows Azure SDK and Windows Azure Tools for Microsoft Visual Studio (November 2010)

Esa versión SDK 1.3 es para VS2010, y me bajé el archivo VSCloudService.exe (no importa si es 32 o 64 bits) que contiene el SDK y las tools para Visual Studio, no hace falta bajarse el SDK aparte, viene dentro de este archivo. Si tienen que usar Visual Studio 2008, tienen que buscar el SDK 1.2, que fue la última versión que tiene soporte para esa IDE. Lamentablemente, no pueden convivir en la misma máquina el SDK 1.2 y el 1.3.

Y el Azure Storage Explorer, de Neudesic, a bajar desde Codeplex:

Azure Storage Explorer

Durante la charla, me concentré en explicar, para quien es nuevo en Azure, dos grandes temas:

Azure Compute, con Web Roles y Worker Roles.

Azure Storage: con Tables, Queues y Blobs.

Los ejemplos de la charla (con tablas, uso de colas, y blobs) pueden bajarlo del Google code project AjCodeKatas, pueden bajarlos desde:

http://ajcodekatas.googlecode.com/svn/trunk/Azure

Los que no tienen SVN pueden ver la versión “congelada” a estos días:

AjCodeKatasAzure.zip

Ejemplos reducidos de Azure Training Kit que tratan esos temas (si no quieren bajarse TODO el kit), en AzureLabs.zip.

Ya escribí en anteriores posts sobre algunos ejemplos presentados. Tengo que publicar sobre el ejemplo de generación de fractal usando un cliente WinForms local y worker roles que hacen el trabajo (incluido en los ejemplos presentados):

Bibliografía usada:

Programming Windows Azure, Sriram Krisham; O’Reilly
Azure in Action, Chris Hay, Brian H. Prince; Manning
Introducing Windows Azure, Henri Li; Apress

Enlaces que fui usando, los coleccioné en:

http://delicious.com/ajlopez/azure
http://delicious.com/ajlopez/azure+tutorial
http://delicious.com/ajlopez/azure+video
http://delicious.com/ajlopez/azure+storage

Algunos enlaces a destacar:

http://blogs.msdn.com/b/windowsazurestorage/archive/2010/05/10/windows-azure-storage-abstractions-and-their-scalability-targets.aspx
http://blogs.msdn.com/b/windowsazurestorage/archive/2010/12/30/windows-azure-storage-architecture-overview.aspx
http://www.microsoftpdc.com/2009/SVC08
http://code.msdn.microsoft.com/windowsazuresamples
http://blogs.msdn.com/b/olavt/archive/2009/03/12/using-windows-azure-blob-storage-to-store-aerial-images.aspx

Próximos pasos: escribir sobre el ejemplo de Azure Fractal, y escribir un ejemplo de Web Crawler usando Tables, Queues, Web Role y Worker Roles.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

ALT.NET Hispano VAN Programando en Azure

Friday, January 7th, 2011

Gracias a la gente de la comunidad ALT.NET Hispano, el próximo sábado 29 de Enero, a las 18hs (GMT) (15hs acá en Argentina), participaré de una VAN (desconferencia virtual), tratando el de Programar en Azure.

Presentaré los temas:

– Conceptos de Windows Azure y Cloud Computing

– Web Roles

– Worker Roles

– Azure Storage: Blobs, Queues, Tables

– Patrones

– Ejemplos

Tratando de dar una visión de cómo se puede programar y aprovechar la plataforma Azure para nuestras aplicaciones en la nube. Ya estoy publicando código y ejemplos en este blog. Lo que presente quedará en la página de la comunidad y en este blog.

Mis enlaces sobre el tema:

http://delicious.com/ajlopez/azure

Para participar, entrar al enlace http://snipr.com/virtualaltnet

Recuerdo lo que el Microsoft MVP @jorgegamba escribió sobre estas reuniones:

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página Descripción de Reuniones.

Para los que no puedan asistir, quedará publicado un video en el sitio de la comunidad.

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

ALT.NET Hispano VAN de Code Smells & Refactoring

Friday, November 26th, 2010

Gracias a la gente de la comunidad ALT.NET Hispano, hoy viernes 25 de Noviembre, habrá una VAN (des-conferencia virtual) del tema Code Smells y Refactoring, a cargo del bueno de @MartinSalias (http://blog.salias.com.ar/, http://www.codeandbeyond.org/). Martín escribió:

[Hoy], viernes 25 de noviembre, tendremos la VAN sobre Code Smells y Refactoring, a las 18:00 GMT (15:00 Argentina, 13:00 Bogotá).

Este es el temario que tengo a priori, pero que podemos discutir:

* Refactoring: mejorando el diseño SIN mejorar la funcionalidad

* ¿Porqué arreglarlo si no está roto?

* Refactoring como verbo y sustantivo

* Malos olores

* Olores y patrones de refactoring asociados (catálogo de Beck & Fowler)

* Otros olores y patrones

* Ejemplos y discusión

Ver detalles de cómo acceder a la VAN: http://altnet-hispano.pbworks.com/w/page/12367699/Descripcion-de-Reuniones

Ver la equivalencia horaria de su país de residencia: http://altnet-hispano.pbworks.com/w/page/12367701/Equivalencias-Horarias

Agregar la reunión al calendario: http://altnet-hispano.pbworks.com/w/page/12367694/Calendario

Los que no puedan asistir y conectarse, no se preocupen que siempre queda el video de la conferencia. Pero si participan, van a poder preguntar y comentar sobre el tema. Pueden acceder via el enlace http://snipr.com/virtualaltnet.

Mis enlaces sobre el tema:

http://www.delicious.com/ajlopez/refactoring

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Presentando Patrones de Diseño (Design Patterns)

Monday, October 18th, 2010

Como ya había anunciado, el sábado 16 de Octubre participé de una VAN de la comunidad ALT.NET Hispano, sobre Patrones de Diseño. En cualquier momento, la gente de ALT.NET Hispano publica el video de la VAN (Des-conferencia virtual). Mientras, les dejo acá la presentación DesignPatterns.pptx.

La idea fue presentar algunos patrones a través de un ejemplo. Usé para eso el patrón Interpreter: estuvimos explorando el código de un intérprete escrito en C#. Lo pueden bajar desde mi proyecto Google AjCodeKatas (en el directorio Patterns), donde posiblemente vaya evolucionando, o pueden tomar la versión actual desde Patterns20101017.zip (noten que los namespaces que usé fueron elegidos para describir patrones, más que para un intérprete real). El ejemplo fue desarrollado con TDD (Test-Driven Design), pero no vimos el proceso en la charla: vimos el resultado, directamente. Para los que quieran ver un intérprete desarrollado usando TDD pueden seguir mi serie de posts sobre el tema en el tag TDD ejemplo: Escribiendo un intérprete en .NET (Parte 7).

También mencionamos código de NHibernate, pero no llegamos a verlo. Comenté sobre Facade y Strategy usando una aplicación de demo generada con AjGenesis y que usa NHibernate. Pueden bajar la versión actual (work in progress) de AjTestNh20101017.zip.

Acá va una lista de los patrones que vimos, y el código elegido para ejemplicar cada uno:

Interpreter: con el intérprete de expresiones que escribí como base de la charla.

Composite: con comandos en el intérprete. Uno de los comandos contiene una lista de comandos.

Template Method: lo encontrarán en el método Evaluate de las BinaryExpressions: se evalúan dos expresiones, y el resultado final se calcula invocando al método .Apply, que es reimplementado en las subclases.

Strategy: En vez de escribir un objeto de una clase por Strategy, escribí Func<obj,obj,obj> a aplicar dentro de la evaluación de ArithmeticBinaryExpression.

Decorator: a cada comando y expresión del intérprete, se le pasa un IContext, que tiene la responsabilidad de mantener los valores de las variables que manejamos. Lo decoré para tener un IContext que avise con eventos qué variables y valores se consultan y modifican.

Observer: usé directamente eventos de .NET, que son una evolución de este tema.

Adapter: cuando quise consumir un archivo como TextReader, con código del lenguaje a interpretar, necesitaba leer, no líneas, sino palabras del lenguajes (clase Token). El Lexer del ejemplo es un adapter para eso.

Abstract Factory: acá me aparté del intérprete y usé una implementación que termina usando los providers de ADO.NET, que a su vez funcionan como Abstract Factory.

Facade: junto con Strategy, son los más importantes a aprender. Todo Strategy nos deriva a composición en lugar de herencia, y a Dependency Injection, Inversion of Control y contenedores. Como Facade mencioné la “API de Negocios” que ya había comentado en otra VAN, y mostré una capa fina de servicio lógico en la aplicación de NHibernate que mencioné más arriba.

No llegué a presentar Facade en el ejemplo intérprete, pero pueden ver la clase Machine, que termina usando por debajo a Parser (otra especie de Adapter), Lexer, archivos, y Context, sin que tengamos que manejar esos objetos desde “afuera”.

Y también encontrarán un ejemplo de Visitor, que toma un programa del intérprete y lo “decompila” a texto.

Tiene más ejemplos y los diagramas UML (que usé en la charla) en:

http://www.dofactory.com/Patterns/Patterns.aspx

Terminó la presentación y vino una discusión, muy interesante. Alguien de Guatemala (disculpen, no recuerdo el nombre) necesitaba trabajar en un caso: para un sistema, hay que calcular el precio de los productos, pero esas reglas cambian mucho en el tiempo y por producto. Surgieron ideas: poner una Factory que genere la Strategy a aplicar en cada caso, y hasta tener una Strategy que interprete código que se levante de un texto. Me hizo recordar a sistemas de sueldos y jornales que ví acá en Argentina. Ahí mencioné que pueden usar el ejemplo de:

Un ejemplo de Dynamic Expressions

donde se compila una expresión lambda escrita en texto. Ahí se mencionan otras alternativas.

Otro camino es usar AjSharp como intérprete, ver los posts de AjSharp Debería escribir un post sobre cómo resolver un tema parecido al planteado en la VAN. También pueden ver a AjSharp como un intérprete mucho más terminado que el ejemplo de la charla. Es parte de AjCodeKatas y pueden verlo aquí.

Otro camino (debo post sobre mi charla en el pasado CodeCamp de Buenos Aires, sobre Intérpretes y Compiladores en .NET), es usar Dynamic Language Runtime:

http://dlr.codeplex.com/

Y hay también facilidades en .NET para compilar “on the fly”, usando CodeDOM, Reflection.Emit, y el compilador de .NET. Pero eso pienso que sería un camino más duro. Escribiré sobre eso en el post que debo sobre mi charla en el CodeCamp.

Gracias a la comunidad ALT.NET Hispano y en especial, al flamante MVP @jorgegamba y también al bueno de @fabiomaulo que me acercó información de nuevos patrones, y a todos los que colaboran con la grabación, edición del video y la organización de todas estas actividades.

Ah! Y en cerca del principio del video, hay una sorpresa … 😉

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

ALT.NET Hispano VAN sobre Patrones de Diseño

Wednesday, October 13th, 2010

Gracias a la gente de la comunidad ALT.NET Hispano, el próximo sábado 16 de Octubre (ese sábado que viene) voy a presentar el tema de patrones de diseño en una VAN (des-conferencia virtual). La idea es comentar lo que es un patrón, un patrón de diseño, su descripción, algunos temas adicionales como diseño y reúso, “Programar contra la interfaz” y composición vs herencia, y después, rápidamente, pasar a ver código. Tenemos dos horas, más o menos, disponibles, así que veremos algunos patrones (lista definitiva a confirmar), como:

– Facade
– Interpreter
– Adapter
– Decorator
– Visitor
– Strategy
– Abstract Factory
– Builder
– State
– Composite
– …

usando diferentes aproximaciones: código simple, y/o código de alguna parte del framework .NET, y/o código de proyecto de código abierto, o algún Code Kata que haya escrito. Como otras veces, el horario del sábado es 18hs GMT, 15 hs acá en Buenos Aires. Para los que puedan asistir, seguramente quedará publicada en video, como otras VANs que pueden consultar en el historial de las reuniones, en el sitio de ALT.NET Hispano.

Mis enlaces sobre el tema patrones, en general:

http://delicious.com/ajlopez/patterns

Recuerdo acá, una vez más, lo que el flamante Microsoft MVP @jorgegamba escribió sobre estas reuniones:

Hay que aclarar que no se requiere ningún tipo de registro, simplemente acudir el día y la hora indicados a la dirección Web http://snipr.com/virtualaltnet, eso sí, deberán tener instalado el programa cliente de Live Meeting; hay más instrucciones sobre cómo hacer esto y otras indicaciones en la página wiki Descripción de Reuniones.

(Robé… eh… :-)… la imagen de arriba del post Design Patterns for not-so dummies )

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

ALT.NET Hispano Café: Más sobre la Inmortalidad de la Medusa

Saturday, August 21st, 2010

El viernes 6 de Agosto pasado, tuvimos un ALT.NET Café (evento virtual vía LiveMeeting) que anuncié en

ALT.NET Hispano Café: La inmortalidad de la medusa

Ya está publicado el evento en:

http://altnet-hispano.pbworks.com/cafe-2010-08-06-arquitectura

Ya tenemos planeado un nuevo evento de este tema, el próximo viernes, 27 de Agosto, a las 18hs (GMT) (15hs acá en Buenos Aires, Argentina). Según lo anunció el bueno de Martin Salias (@MartinSalias) en la lista de la comunidad ALT.NET Hispano:

El viernes próximo tenemos otra ronda sobre "La inmortalidad de la Medusa". Con el Maestro estuvimos charlando un poco y se nos ocurrió que podemos seguir un poco el tema que empezamos alrededor de la separación en capas, y complementando un poco el debate que iniciamos sobre todo alrededor del tema acceso a datos y su conexión con el modelo de dominio, podríamos charlar un poco de las alternativas desde allí hasta la interfaz externa (sea de usuario, servicios, etc).

Algo que me gusta revisar siempre es la idea de la Arquitectura Hexagonal de Alistair Cockburn (ahora más conocida como Ports & Adapters) donde nos sacamos de encima el modelo mental de datos-lógica-presentación, y pensamos en extremos que publican y consumen datos, con un core que los analiza o transforma.

Creo que cada vez más, con el ambiente de mash-ups, aplicaciones expuestas como servicio, multitud de clientes y dispositivos, etc, hay mucha tela para cortar alrededor.

Me gustaría saber qué les parece e ir delineando ideas durante la semana para charlarlas el próximo viernes.

El tema que menciona Martín lo pueden leer en:

Alistair Cockburn : Hexagonal Architecture

Mis enlaces de arquitectura, aplicaciones de ejemplo, etc:

http://www.delicious.com/ajlopez/softwarearchitecture

En el anterior post, mencioné el origen del nombre de estas charlas:

El nombre surgió porque la abuela de Martín siempre le decía: “No empezar a discutir sobre la inmortalidad del cangrejo” como diciendo evitar las discusiones interminables. Yo le retruqué con algun artículo en línea donde se afirmaba la inmortalidad de las medusas. De ahí, vean que cosa, surge el título de este ALT.NET Café.

Tienen acá un artículo sobre la inmortalidad de una especie de medusa, la Turritopsis nutricola:

Una medusa inmortal se extiende por todos los océanos de la Tierra

Artículos relacionados:

The curious case of the inmortal jellyfish
http://en.wikipedia.org/wiki/Transdifferentiation
http://en.wikipedia.org/wiki/Turritopsis_nutricula

Mis enlaces de biología:

http://delicious.com/ajlopez/biology
http://delicious.com/ajlopez/evolution

Lo mío es un apostolado 😉

Nos leemos!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez