Skip to content

Meep: Notas

Meep FDTD Software

Primero que nada cabe mencionar que la documentación de Meep en cuanto a la interfaz de C++ es por desgracia muy escasa por lo que se tendrá que hacer una indagatoria a fondo en el código de la librería para ver como funciona y entenderla, la ventaja de eso es que se conocerá la herramienta a fondo y se tendrá la mayor flexibilidad y control sobre el código de las simulaciones, la documentación de la herramienta da la impresión de que la intención principal del Meep desde el punto de vista de las personas que lo crearon fue que fuera utilizado principalmente y mayormente desde “Scheme” generando archivos con extension “.ctl” y utilizando la libctl y un paquete llamado Guile para hacer el linkeo con la librería C++ original, esto reduce mucho la complejidad de tener que utilizar la librería C++ para las simulaciones pero el problema que se puede observar es que no se entendería completamente la herramienta.

También, el código de C++ del Meep esta escasamente documentado y se puede ver de primer vistazo que no era la intención de que fuera utilizado directamente, hay un par de artículos como el C++ tutorial y el C++ reference donde se pueden ver algunos ejemplos de como utilizar el Meep desde C++ pero definitivamente esta documentacion es insuficiente, tambien, los articulos apuntan a un documento .pdf que escribió Steven G. Johnson donde documenta algunos ejemplos pequeños de como utilizar la herramienta directamente desde C++ como librería pero de nuevo la documentación es poca.

Por otra parte, se tiene el mailing list en donde se pueden ver algunos ejemplos que hace la gente que utiliza el meep y en donde se dan buenos tips de como hacer las cosas en C++, en general la moraleja de todo esto es que se tendrá que sumergir en el código del la librería en si si es que se quiere tener un nivel aceptable de entendimiento sobre este software, lo que resulta atractivo es poder documentar como funciona exactamente y como hacer cosas directamente desde la librería C++ ya que no existe esa documentación.

La ventaja principal es que se tiene la documentación actual la cual esta mayoritariamente en scheme pero también tenemos los archivos que mapean al scheme con las funciones de C++ por lo que se puede hacer ingeniería inversa, una vez que se haga se sabra como definir una geometría o cualquier tipo de objeto directamente desde la librería C++ ya que la librería C++ en si no conoce nada de bloques, esferas, cilindros etc y por el contrario se utiliza un paquete de geometrías externo que también fue creado por el MIT.

Bueno, suficiente de tanta charla, lo primero que se tiene que hacer es instalar el Meep con todas las librerías de desarrollo para poder hacer las modificaciones y programas desde C++, en el siguiente post anexo una guía de instalación de paquetes, contiene algo de documentación al inicio de cada grupo de paquetes que necesita el Meep para funcionar para crear una idea de todas las dependencias de esta tan interesante herramienta..

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Meep: Introduccion

Meep es un Software libre de simulación desarrollado por el MIT que utiliza el Metodo de Diferencias Finitas en el Dominio del Tiempo escrito en C++, el cual cuenta con una gran variedad de bondades que pueden ser utilizadas por profesionales, científicos o experimentales para realizar simulaciones poderosas y con un grado de exactitud razonable,

Se puede utilizar Meep para hacer simulaciones tanto en 1d, 2d o 3d, cuenta con soporte para paralelizacion mediante MPI, se puede utilizar utilizando una gran variedad de lenguajes e incluso cuenta con un lenguaje de programación funcional “scheme” el cual hace que el usuario final no tenga que necesariamente ser programador o saber programar ya que es una abstracción de todas las funciones de la librería en forma sencilla e intuitiva,

También, tiene soporte para el formato HDF5 el cual es un estándar muy flexible y poderoso para manejar datasets en varias dimensiones, para información detallada de todo lo que Meep soporta esta su pagina, y para preguntas frecuentes esta el FAQ..

Y porque estoy hablando de Meep??

Básicamente he tenido la encomienda de mi asesor de doctorado y amigo el Dr. Jesus Manzanares de hacer simulación utilizando para esto y como herramienta el Meep por medio de C++.

Y porque desde C++ y no algún otro lenguaje de scripting??

Lo que se quiere lograr al final del día es tener simulaciones personalizadas lo mas posible, por este motivo se ha decidido que una de las lineas de investigación sera la de C++ para tener el mayor grado posible de flexibilidad y control sobre el código de la simulación.

Y porque Meep y no algun otro software de FDTD??

El grupo del Dr. Manzanares creemos que el Meep es uno de los mas poderosos software para simulación FDTD en el mercado, ya que aparte de ser libre y de código abierto nos ofrece la posibilidad de hacer paralelizacion para cálculos muy grandes.

Y por que publicar sobre Meep si este tiene su propia pagina??

Meep tiene su propia pagina la cual es excelente!, desgraciadamente el usuario final de Meep esta contemplado para no tener que ser programador o entender de programación para poder utilizarlo lo que llevo a los creadores de Meep a dar gran soporte a los lenguajes funcionales (Scheme) que sirven de interfaz para hacer simulaciones y el cual abstrae mucha de la gran complejidad de la librería de C++ en si, cabe mencionar que los creadores del Meep hicieron un extraordinario trabajo intentando hacer que Meep fuera lo suficientemente fácil y entendible para cualquier persona y utilizaron lo que el Dr. Manzanares llamaría ”Bloques Lego” que en este caso es la perfecta analogía para el lenguaje funcional e ilustra la forma en que “literalmente” se estarian construyendo las simulaciones, es por esto que en la pagina del Meep el enfoque de utilizar C++ como interfaz para acceder a la librería esta pobremente documentado ya que la intención principal de los creadores no era precisamente el exponer C++ como interfaz principal para simulaciones por lo que toda la información que se publique en esta categoría sera un intento por documentar la interfaz de C++ y tener la información accesible para cualquier persona en español.

Que se necesita para utilizar Meep??

Meep es un lenguaje desarrollado para plataformas *nix y se recomienda especialmente instalarlo desde una plataforma Linux y mas específicamente utilizando Debian o Ubuntu ya que se cuenta con un paquete precompilado en los repositorios que hace que el disponer de este Software sea una cuestión muy sencilla, una vez instalado no se necesita ser especialmente programador o algo por el estilo ya que se cuenta con la interfaz funcional con la cual se pueden hacer una gran variedad de simulaciones, ahh y por supuesto se necesita una gran cantidad de ganas de internarse en esta increíble aventura.

Con esto, doy inicio a una serie de posts en donde tratare de documentar de la manera mas clara posible la utilizacion de esta invaluable herramienta utilizando como lenguaje e interfaz principal C++,  espero que lo disfrutes tanto como yo :)  

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Global Update

Después de una laaarga espera sin poder postear nada, me he dado a la tarea de hacer un global update de las cosas que acontecieron a mi alrededor en los últimos meses, empezare hablando un poco sobre el trabajo,

En general en cuanto a trabajo he estado a gusto ya que he gozado de la libertad de diseñar la estructura base del nuevo proyecto al que recientemente me uni, pero la idea de usar Visual Basic .Net no me gusto mucho aunque eso se equilibra con el hecho de que se nos autorizo utilizar WPF, de todas formas el lenguaje ya no es tanto problema ya que me estoy acostumbrando a usar varios lenguajes a lo largo del día..

Las políticas de la empresa han sido reforzadas un poco y me recuerda en ciertos casos a cuando trabajaba en Takata en donde prácticamente era imposible utilizar el Internet para cualquier cosa debido a la “seguridad” que este tenia, pero Takata no tenia nada que ver con la industria del Software por lo que es “entendible” que se pusieran tan paranoicos como lo son, ya que el promedio de la gente que utiliza las computadoras no tiene una idea clara de como prevenir infecciones y problemas de seguridad, pero esto en la industria del Software y a mi punto de vista personal es algo que nos limita demasiado, el Internet se ha vuelto una herramienta esencial en el desarrollo de software y como tal se encarga de alimentarnos con ideas innovadoras de los expertos y un sin fin de herramientas e inversión en código que hacen que nuestros desarrollos tengan calidad de primer mundo, pienso que el buen o mal uso del Internet es responsabilidad de cada quien y que en la industria del Software no hay excusas para no hacer buen uso de esta tan útil herramienta.

Sobre mis expectativas puedo decir que he logrado empezar a estudiar un doctorado, cosa que ya es un éxito a mi punto de vista, me he sumergido en toda clase de problemas que nunca imagine que existieran y he convivido con gente con un nivel muy alto de conocimientos lo que me hace tener la obligación de ser mejor!, esto ha impactado en una medida muy grande en mi vida cotidiana ya que muchas cosas han cambiado, con los pocos meses que tengo en esta aventura he cambiado totalmente el sistema operativo que utilizaba en casa, ahora tengo linux por default, he tenido que aprender en corto plazo una gran variedad de tecnologías y métodos que no utilizaba, alomejor seria por estar acostumbrado a trabajar con tecnologías Microsoft, he tenido que cambiar mis hábitos de lectura para incluir libros de C++, de Fortran, de computación paralela, de álgebra lineal, calculo y otras cosas.

Sobre mi vida personal puedo decir que he eliminado en la medida de lo posible el uso de redes sociales, sin descuidar el hecho de saber como estas funcionan y cuales son sus mejores cualidades, he descuidado mi blog lo cual es bueno y malo a la vez, bueno ya que significa que he estado muy ocupado y siendo mas productivo con lo que hago y malo por que en cierta forma he dejado de expresarme como lo hacia antes y de manera regular, pero la recompensa de esto es la gratificación que da el escribir un nuevo post :) , y he tenido el placer de tener una relación estable.

En cuanto a proyectos creo que he sido bastante productivo aunque en algunos de ellos no me puedo llevar todo el crédito ya que ha sido esfuerzo compartido, ha surgido la pagina de www.ajedrezensonora.com la cual se encarga de masificar el ajedrez en el estado cosa que me parece sumamente importante ya que considero al ajedrez como un deporte que te ayuda en tu formación como persona, se han publicado muchos juegos en linea y artículos de gente con muy altos conocimientos, cosa que me parece muy novedosa en el estado de Sonora, nació www.imabit.com el cual es un intento por crear mi empresa con identidad propia en Internet y la cual algún dia me dará todos los beneficios de poder ofrecer servicios avanzados de programación y todo tipo de servicios informáticos, también, surgio www.phoxonics.com pagina del doctorado en la cual se han hecho todo tipo de prototipos en linea, desde gráficos dinámicos utilizando paquetes de linux y servicios C++-CGI utilizando JSON y Ajax, he tenido que aprender como publicar formulas LaTeX en linea y mezclar todo eso con wordpress, y las cosas se ponen mas candentes e interesantes conforme pase el tiempo y me sumerja de lleno a la simulación y animaciones..

Me he desvelado y eso no lo puedo negar tanto haciendo programación o leyendo así como compartiendo una buena partida de ajedrez o disfrutando de una película con mi novia, cosas que me apasionan..

Con este sencillo y expresivo post me despido recalcando el compromiso de por lo menos publicar algo como esto cada semana, tal vez haya semanas que esto resulte imposible pero en general no debería serlo ya que es parte de mi persona..

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Matriz de Hacking

Hoy me llego un correo de la revista Spectrum de la IEEE en donde mostraban una matriz del hackeo que ha habido en los ultimos meses, bueno, meses es un decir por que la verdad que Stuxnet ya tiene algunos anios en circulacion entre algunas otras tretas, la matriz me parecio bastante interesante y no resisti las ganas de grabarla en el blog para referencia futura, espero que la disfruten, en la parte de abajo se encuentra el enlace a la matriz original es recomendable visitarla si te parece interesante ya que cuenta con informacion de cada punto :)

Tratare de hacer posts mas seguido con informacion interesante y cosas que merecen estar en internet, solo es cuestion de darme un poco de tiempo, de todas formas hacer un post no deberia quitar tanto tiempo una vez que tienes toda la informacion que quieres difundir solo es cuestion de sacar el FFFUUUAAAA!!!! jajaja

Saludos!

Fuente: http://spectrum.ieee.org/static/hacker-matrix/?utm_source=techalert&utm_medium=email&utm_campaign=071411

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Homero Dios

Siempre dude de la existencia de dios, ahora se que existe, soy yo..

Saludos!

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Computacion Paralela..

Me encontre este parrafo de Lewis S. Richardson de “Weather Prediction by Numerical Process – 1922″ que es citado en el libro que estoy leyendo en este momento, la verdad me gusto mucho la analogia y quise dejarlo grabado en este mi espacio y compartirlo con la gente que pase por el blog,

Imagine a large hall like a theater, except that the circles and galleries go right round through the space usually occupied by the stage. The walls of this chamber are painted to form a map of the globe…A myriad of computers are at work upon the weather of the part of the map where each sits, but each computer attends only to one equation or part of an equation. The work of each region is coordinated by an official of higher rank…From the floor of the pit at all pillar rises to half the height of the hall. It carries a large pulpit on its top. In this sits the man in charge of the whole theater; he is surrounded by several assistants and messengers.One of his duties is to maintain a uniform speed of progress in all parts of the globe. In thisrespect he is like the conductor of an orchestra in which the instruments are slide rules andcalculating machines. But instead of waving a baton he turns a beam of blue light upon those who are behindhand.

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Mi primer torneo de Ajedrez

Este fin de semana de puente que acaba de pasar tuve la oportunidad de estar involucrado en el Torneo Estatal de Ajedrez de Sonora 2011, en general es una experiencia excelente! y definitivamente se pueden sentir una mezcla de nervios, agitacion y adrenalina al llegar a  la mesa ver a tu oponente y todo el ritual de jugar una partida de ajedrez en Torneo,

Entre una de las muchas cosas y experiencias nuevas que pude vivir en este mi primer torneo de ajedrez fue:

  • Anotar tu jugada en la papeleta cada vez que haces un movimiento, cabe mencionar que algunas veces uno no esta tan acostumbrado a escribir partidas por lo que de pronto la notacion para escribir dichas partidas puede resultar un tanto confuso.
  • Jugar con tiempo, esto es comun en un juego de ajedrez pero por lo menos para mi que soy un jugador de torneo novato y acostumbro mas a jugar partidas por internet no me resultaba logico tener que presionar el reloj de tu tiempo fisicamente ya que por internet esto es automatico y en ocasiones llegaba a perder hasta 10 minuntos por no darme cuenta que no habia presionado el reloj :)
  • Definitivamente el poder de analisis: El poder de analisis que se emplea en una partida de torneo es mucho mas grande que si jugaras en algun otro lado bajo distintas circunstancias, tu cerebro esta totalmente enfocado a eso y calculando la maxima cantidad de variantes posibles para poder obtener el siguiente mejor movimiento.
  • Acostumbrarte a que mucha gente vea tu partida: Cuando uno juega regularmente pero por internet o con amigos no es comun que gente que no conoces se acerque y se ponga a analizar tu partida, en los primeros juegos en este mi primer torneo esto me resultaba extraño y raro y a veces hasta un poco desconcertante como una distraccion, pero al pasar de las rondas, los juegos y la adrenalina esto se vuelve completamente normal y deja de distraerte, y al final es algo bueno porque puedes recibir consejos en posiciones o variantes que pudieran ser mejores a lo que jugaste en ese momento.
  • Los comentarios y analisis: Los comentarios a la finalizacion de partida son un recurso excelente para saber los errores que comentio cada jugador, me llego a tocar que hice algunos analisis rapidos con mi contrincante de los errores o de las fortalezas que tuvo cada jugador en el juego al momento de terminar, esto es definitivamente de ayuda para mejorar tu partida, tambien, los comentarios de tus amigos y conocidos y posiblemente analizar la partida completa para saber lo que puedes mejorar en el futuro.
  • La convivencia y sociabilidad en el torneo: Esto es algo que no tiene precio el poder conocer mas gente que comparta tu mismo gusto por el ajedrez y el poder platicar y convivir es de las mejores cosas que puedes ganar en un torneo de ajedrez.
  • La victoria y la derrota: los sentimientos de victoria y la derrota en una partida de ajedrez de torneo estan amplificados enormemente a comparacion de si jugaras una partida normal y es algo que hace que te sientas muy bien o muy mal por algunos minuntos inmediatamente despues de la partida, una vez que pasa el tiempo el sentimiento va disminuyendo y se puede convertir en satisfaccion o en ganas de mejorar como jugador.
  • El tiempo de juego: El tiempo de juego de torneo es normalmente mayor al tiempo en que juegas partidas regulares, esto no siempre puede ser valido para todos pero en mi caso si lo es, es por eso que se puede (en mi caso) analizar mas variantes ya que dispones de mas tiempo para pensar.

Estos son algunos puntos de los que recuerdo de momento, y tal vez haya mas que por ahora no recuerdo pero si tu tienes alguna sugerencia puedes postearla como comentario.

Para cerrar este post me gustaria comentar que en general, la experiencia de haber estado y jugado en un torneo de ajedrez excedio todas mis expectativas y se lo recomiendo a todo mundo que si tiene la oportunidad de asistir a un evento de esta naturaleza lo haga!, otros factores definitivamente confortables fue el hecho de que el torneo fue en la playa de cortes y con vista al mar en un hotel muy agradable y con gente de calidad.

pd. tratare de postear mas adelante algunas de mis partidas..

Acaban de publicar los resultados de ajedrez, 4to lugar no es malo teniendo en cuenta que no jugue la ultima partida :) , para ver la completa covertura del Estatal de Ajedrez Abierto 2011 Click Aqui.

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

5to Aniversario Tiempo

Tarde pero seguro jeje, la semana pasada la empresa donde actualmente laboro Tiempo Development, estuvo celebrando su 5to Aniversario, hubo carne asada, mariachi, brindis, pastel y en general fue un buen detalle por parte de los directivos el haber hecho este tipo de festejo, a continuacion agrego algunos videos e imagenes que tome, no son muchos pero se puede apreciar la buena vibra..

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Presunto Culpable (Documental)

Paseando por el blog de ciudad acunia me encontre un post que ponia mi compa publicando el video completo de youtube de presunto culpable, este documental que ha sido betado y la verdad malamente en donde se expone como nuestro sistema de gobierno esta podrido y como unas cuantas personas que tienen el poder lo ejercen a voluntad sin tomar en cuenta nada mas que su propio juicio, VIVA MEXICO!

Aqui les dejo el video ya que el del post de mi compa lo hicieron privado, a ver cuanto dura este online lo estare reposteando de todas formas,

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Ajedrez en Sonora e Imabit :)

Ultimamente he estado trabajando con mi novia y su familia en algunos nuevos proyectos que tenemos en mente, uno de ellos es Ajedrez en Sonora y basicamente se trata de impulsar el Ajedrez en el estado de Sonora en donde la Asociacion de Ajedrecistas de Sonora tiene la clara idea de masificar el movimiento, por lo cual te recomiendo que te unas a esta masificacion en caso de que sea de tu interes,

Tambien en esta plataforma digital,  la Asociacion estara publicando informacion reelevante e interesante con respecto a eventos de ajedrez, torneos, fotos, videos, escritos, convocatorias, algunos tutoriales multimedia entre muchas otras cosas por lo que es buena idea visitar regularmente esta pagina. :)

El siguiente proyecto en el que se le ha dedicado algo de tiempo es el de Imabit Inc. Que basicamente es una pagina informativa que pretende ser el centro de las operaciones digitales  que realizamos, esta pagina practicamente solo tiene el objetivo de informar acerca de lo que hacemos, la forma en que se hace, algunos articulos de interes y noticias sobre tecnologia.. :)

Por ahora hay otro proyecto cocinandose a fuego lento el cual me tiene emocionado y bastante ocupado ya que se ofreceran una gran variedad de servicios, espero pronto (dentro de unos meses) poder estar publicando un post con la noticia reelevante a este proyecto, y gracias por visitar estas 2 nuevas paginas que aportan mucho a la comunidad internauta,

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Las mejores fotos de mi tierra…

Que ondas,

Este es un super mega fast post solo para recomendar que si quieren ver las mejores fotos de mi tierra pues solo hay un lugar y ese lugar es:

http://www.acunacoahuila.blogspot.com/

Saludos a mi compa el tavo y a todos los que hacen posible lograr estas fotos que a mi punto de vista son de grandisima calidad, un trabajo de un verdadero profesional,

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Desastre similar a Chernobyl..

Ultimamente se ha escuchado la noticia de que Stuxnet podria causar un desastre parecido a el desastre de Chernobyl, y la verdad que es bastante viable, una vez que haz leido las explicaciones de los expertos en seguridad informatica en donde se da a conocer el funcionamiento de este complejo virus que tiene la capacidad de infectar y modificar la programacion de PLC’s por medio de los drivers utilizados para comunicacion, te puedes dar cuenta que el poder de controlar procesos fisicos es practicamente ilimitado,

Tambien, cabe mencionar que recientemente se descubrio que este virus solamente afecta el flujo de programacion de un PLC una vez detectado una serie de pasos especificos o programa por lo cual se dice que este complejo virus fue diseñado con un objetivo en mente como si se tratara de un misil direccionado hacia un punto bien identificado,

Los expertos aseguran que el codigo afectado puede modificar los ciclos del equipo centrifugo, lo que podria causar un desastre tipo Chernobyl ya que una de las instalaciones mas afectadas ha sido la planta nuclear Bushehr en Iran,

Gente de Iran ha dicho que tiene bajo control las instalaciones y que un desastre seria practicamente imposible ya que las mediciones en los equipos de monitoreo reportan niveles normales en la planta nuclear, pero los expertos en seguridad informatica han respondido que el virus tiene la capacidad de rootkit en el PLC esto significa que un equipo infectado reportara siempre condiciones normales en la programacion del PLC aunque en realidad el flujo de operacion este totalmente fuera de control,

Este virus no deja ni dejara de sorprenderme pues cada dia me resulta mas increible la complejidad y el grado de calidad y preparacion de la gente que produjo Stuxnet ya que por todas sus caracteristicas infecciosas, de infiltracion y rutinas nunca antes vistas para reprogramar estos dispositivos hacen que todo el mundo pensemos que detras de todo esto no solo hay hackers muy talentosos sino todo un Estado que ha invertido una cantidad considerable de dinero en este nuevo tipo de “Terrorismo” para un fin especifico.

Saludos! :)  Espero les resulte tan interesante este tema como a mi..

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Seguridad ante todo!

jajajaj que risa me dio cuando me encontre con este escenario en mi trabajo, al parecer le hemos encontrado un uso alterno a los cargadores de laptops, bueno la imagen dice mas que mil palabras..

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Si yo fuera Dios..

Navegando por la web me encontre el siguiente pensamiento el cual quise grabar en el blog, los creditos totalmente son de http://www.quelapaseslindo.com.ar/ … Si yo fuera dios:

Hubiera creado internet desde el arranque. Adán, Eva, Internet. O por ahí un toque después, para asegurarme laSi yo fuera Dios reproducción de la especie.

Hubiera dejado más clara en la Biblia la No-Admisión al cielo a “hinchas” de Independiente y Boca.

Les pidiría que actualicen la foto carnet: esa que tienen me la saqué posta hace mil años y ya es un quemo.

Varias veces, viendo el mundo como está hoy, preguntaría si me están jodiendo.

A varios políticos, terroristas, y “representantes populares” les diría que no, que ese que les está hablando de parte mía pidiendoles que maten gente, generen discordia, mientan, y no desparramen el amor y la paz no soy yo, debe ser el paco. Que yo ya hablé antes que eso, a todos por igual, y pedí exactamente lo contrario.

A varios “líderes religiosos” también les diría que no, que la iglesia está en la calle, no en “la iglesia”. Que yo no rechacé ni discriminé a ningun@, y no me acuerdo de haberle dado a nadie el poder para hacerlo de mi parte. ¡Que por lo menos no lo hagan en mi nombre!.

A la “gente común” le diría que tengo varios fans que están un toque del tomate. Varios locos lindos que me siguen, y varios otros que todavía están aprendiendo a conocerme. Todas personas con errores (arrogancia, discriminación, intolerancia, o el que le toque a cada uno). Pero que no se dejen llevar por lo que diga ninguno, que me conozcan directamente, no como hicieron con Osvaldo:P

Y si fuera Dios estaría terminando de preparar el cumpleaños de “mi nene” (la última vez que chequeé tenía más de 2000, pero sigue siendo mi bebé), que es hoy a la noche. Y les diría que para conocerme a mi, hay que conocerlo a El. Así que si yo fuera Dios “los invitaría a mi fiestita”. Y les diría que el que tenga oídos para oir, que oiga. :) ¡Feliz Cumpleaños de Jesús!.

Saludos :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Regalos y regalos…

Este post es para agradecer por los regalos que he recibido ultimamente en menos de 1 semana, el primero y mas importante es el de mi novia que me regalo ni mas ni menos que una hielera llena de chelas :) que la verdad me gusto bastante por que no tenia ninguna y me hacia falta sobre todo por estas fechas decembrinas, gracias beib por ese regalo tan chido que me alegro mi dia :) ..

El siguiente regalo muy cool fue por el intercambio de regalos al que me invitaron los Sanctions un grupo de programadores de mi trabajo, Jorge Heraz, David Gonzalez, Alfonso Gonzalez, Silvestre Gil e Ivan Lizcano, en el cual me regalaron ni mas ni menos que una botella de Jack Daniel’s, gracias mi David..

Bueno pues no cabe duda que en estas fechas decembrinas el destino quiere que celebre en grande y asi lo hare, gracias a todos ustedes por estos regalos tan chidos..

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Silverlight Firestarter

Un post rapido solo para recomendar que si pueden ver el dia de hoy el Silverlight Firestarter entren al stream esta muy interesante estara todo el dia y es en vivo tocando temas de nuevas tecnologias aqui les dejo el enlace para los interesados..

http://www.silverlight.net/news/events/firestarter/

Y por ultimo es raro trabajar en media pantalla pero no tengo de otra jajaj asi luce mi desktop el dia de hoy..

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Extraño comportamiento usando yield y manejo de exceptiones

Trabajando en un proyecto y de alguna manera llegue a ver el escenario que a continuacion describo al momento de utilizar el operaror yield y manejo de excepciones con PostSharp..

Resulta que cuando utilizas yield para regresar una lista tipo IEnumerable y en el metodo hijo en el cual utilizas yield ocurre una exception hay un comportamiento un tanto raro o al menos para mi que no soy un experto en C#, quise hacer un proyecto de ejemplo para ilustrar mejor el comportamiento que describo, a continuacion pongo la clase de un proyecto de consola que hice:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace PostSharpYieldSample
{
    public class Program
    {
        public static void Main(string[] args)
        {
            ParentMethod();
            Console.WriteLine("press any key to end.");
            Console.ReadLine();
        }

        private static IEnumerable<string> _myList;

        /// <summary>
        /// Parent
        /// </summary>
        [ExceptionHandlerAspect]
        public static void ParentMethod()
        {
            Console.WriteLine("In parent Method.");
            _myList = ChildYieldMethod();

            // comment the lines below to "EAT" the exception message
            foreach (string str in _myList)
                Console.Write(str);
        }

        /// <summary>
        /// Child method using yield
        /// </summary>
        /// <returns></returns>
        public static IEnumerable<string> ChildYieldMethod()
        {
            Console.WriteLine("In child Method.");
            String[] data = { "Item 1", "Item 2", "Item 3" };

            foreach (string myString in data)
            {
                yield return myString;
                throw new Exception("Some exception happen here");
            }
        }
    }
}

Como se puede ver estoy utilizando un Aspecto de PostSharp en el metodo ParentMethod() para “cachar” todas las excepciones que pudieran ocurrir en el metodo, a continuacion enlisto el aspecto que estoy utilizando:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using PostSharp.Aspects;
using System.Diagnostics;

namespace PostSharpYieldSample
{
    /// <summary>
    /// Aspect class that handles errors using postsharp
    /// </summary>
    [Serializable]
    public sealed class ExceptionHandlerAspect : OnExceptionAspect
    {
        /// <summary>
        /// The flow behavior to use.
        /// </summary>
        private FlowBehavior flowBehavior;

        /// <summary>
        /// Default Constructor
        /// </summary>
        public ExceptionHandlerAspect()
            : this(FlowBehavior.Return)
        {
        }

        /// <summary>
        /// Creates an instance specifying the flow behavior to use
        /// </summary>
        /// <param name="flowBehavior">The flow behavior</param>
        public ExceptionHandlerAspect(FlowBehavior flowBehavior)
        {
            this.flowBehavior = flowBehavior;
        }

        /// <summary>
        /// Method invoked upon failure of the method to which the current
        /// aspect is applied.
        /// </summary>
        /// <param name="args">Information about the method being executed.</param>
        public override void OnException(MethodExecutionArgs args)
        {
            string errorInfo = string.Format("{0}() {1} - PostSharp message.", args.Method.Name, args.Exception.Message);
            Console.WriteLine(errorInfo);
            args.FlowBehavior = flowBehavior;
        }

    }
}

Este aspecto es muy sencillo y lo utilice solo para fines de la demostracion y lo unico que hace es que me regresa un mensaje personalizado de la excepcion que ocurrio en el metodo donde se definio el aspecto (atributo), al ejecutar la aplicacion de ejemplo se vera la siguiente pantalla:

Cosa que tiene sentido ya que el flujo del programa entro en el metodo donde utilizo yield y solo regreso el primer elemento para despues lanzar la excepcion especificada, en este caso PostSharp “atrapa” correctamente la excepcion y la muestra en pantalla, este es el comportamiennto esperado, El problema viene cuando comentamos las lineas del parent method donde se hace referencia a la lista que se lleno mediante yield, estas lineas comentadas son las siguientes:

            // comment the lines below to "EAT" the exception message
            //foreach (string str in _myList)
            //    Console.Write(str);

Al momento de comentar estas lineas y volver a ejecutar el programa algo “raro” ocurre con la excepcion, lo que ocurre es que practicamente la excepcion es omitida o practicamente nuca llegamos a ejecutar el metodo donde utilizamos yield, el resultado luciria algo como lo siguiente:

Habra que investigar mas sobre lo que la palabra reservada yield hace en este caso internamente ya que a mi punto de vista no es un comportamiento obvio al que uno concluiria facilmente, a continuacion pongo el enlace del codigo fuente de la aplicacion ejemplo..

PostSharpYieldSample

Pd. Creo que se me olvido hablar un poco mas acerca de PostSharp y programacion orientada a aspectos, es buen tema para un post que publicare mas adelante en estos dias por si te interesa saber mas sobre el tema de todos modos en la red hay mucha informacion sobre ello..

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Stuxnet: Como infecta PLC’s (Video)

Navegando por internet y buscando algo mas de informacion sobre Stuxnet el virus mas avanzado de la historia, me encontre con un video que recientemente libero Symantec en donde se demuestra la manera en que Stuxnet infecta PLC’s,

Cabe mencionar que el documento que en un pasado post publique aqui en el blog y propiedad de Symantec ha cambiado ya que se han descubierto nuevas funcionalidades de Stuxnet en la parte de la reprogramacion de los PLC’s al parecer altera frecuencias de salida utilizando convertidores, lo que resultaria en el aumento o disminucion de la velocidad de un motor y se traduce en efectos impredecibles dependiendo de la programacion del PLC infectado,

Aqui esta el enlace del articulo completo donde se describe la nueva funcionalidad asi como el documento actualizado de Stuxnet el cual lo subire para que este disponible en todo momento en el blog, tambien dejo el enlace al documento original.

httpv://www.youtube.com/watch?v=cf0jlzVCyOI

w32_stuxnet_dossier.pdf

Saludos! :)

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Visual Studio 2010 Productivity Power Tools..

Este mega-fast post jejej es solo para hacer una recomendacion, si tu eres un heavy user de Visual Studio 2010 este es una extension must-have, ya que como su nombre lo dice hace que tu productividad al momento del desarrollo aumente con unas increibles mejoras hechas al entorno de desarrollo, para ver una descripcion detallada de todo lo que se incluye con los power tools CLICK AQUI..

A continuacion agrego algunos screenshots para que te quedes boqui abierto,, felicidades a la gente de Microsoft que no deja de sorprender con las increibles herramientas de desarrollo que pone a nuestra disposicion!!

Post to Twitter Post to Delicious Post to Facebook Send Gmail

Celebrando..

Quiero externar un agradecimiento especial a la familia de mi Novia y Amigos que me invitaron a celebrar con una comida y unos juegos de Ajedrez mi defensa de tesis de Maestria :)

Me la pase excelente! aunque todavia no he podido ganarle a Manzanares en Ajedrez pero no dejare de intentar jejej,

Saludos!

Post to Twitter Post to Delicious Post to Facebook Send Gmail