domingo, 22 de abril de 2012

Effective UI

A picture, is the state of the art, to show some idea to other people, Iam reading a oreilly's book, yes about the UI, always, that, is my big problem in the software engineer enviroment.

sábado, 7 de abril de 2012

Doblegando a C++

Hoy que leí el periódico local , había un articulo que me sorprendió mucho, es acerca de la pintura: la ultima cena, de Leonardo da vinci. Don Leonardo pinto esa obra cuando tenía 43 años, precisamente hace algunos días , cuando cumplí esa edad, me puse a pensar, en que parte de mi vida estoy, así me di cuenta, que estoy en uno de esos momentos en los que tengo mas experiencia , y aun tengo ganas de crear grandes obras, grandioso software , además de leer todo aquello que pueda ser interesante, también me di cuenta, que el tiempo apremia, la vida se acaba y no hay que desperdiciarla.

domingo, 18 de marzo de 2012

Complemento a 2

Que es? Es una forma de manejar números negativos en binario. Como se hace?
Ejemplo de Complemento a dos
Sea una representación en formato de Complemento a dos que nos permite codificar en binario en punto fijo con 8 bits (un byte). Al igual que con la representación en Signo y Magnitud, y Complemento a uno, esto nos otorga 1 bit para el signo y 7 bits para la magnitud. Con 8 bits, podemos representar, 28 = 256 números. Los cuales, según éste formato, van a estar repartidos entre 128 números positivos (bit de signo en 0) y 128 números negativos (bit de signo en 1).
Supongamos ahora, que tenemos que representar el número -9710. Procedemos a:
Tomar nota del signo del número -9710, que siendo negativo, llevará como bit de signo un 1;
Como el signo es negativo, el número a continuación del bit de signo, deberá expresarse en complemento a dos. Al realizar la conversión: el valor absoluto de -9710 es |-9710| = 9710. Que en binario es: 11000012, y el complemento a uno de 11000012 es C1(1100001) = 00111102, le sumamos uno para obtener el complemento a dos: 00111102 + 00000012 = 00111112;
Colocar todo junto, el número -9710 en binario con formato de Complemento a dos es: 100111112. Donde el 1 en el bit más significativo indica un número negativo, y 00111112 es el significando en complemento a dos del valor absoluto del número.
Para el caso inverso, dado un número binario en Complemento a dos, por ejemplo, 101101012, procedemos a:
Analizar el bit más significativo, que siendo un 1 indica que el número es negativo;
Convertir el significando a la base deseada, por ejemplo, en decimal, tomando en cuenta que: el valor obtenido está en valor absoluto, que la magnitud real estará dada por el bit de signo obtenido antes, y que en caso de ser bit de signo negativo (como es el caso) se deberá obtener el complemento a dos: C2(0110101) = C1(0110101) + 00000012, luego C1(0110101) = 10010102, y al sumarle 1, 10010112 = |7510|. Siendo que el bit de signo es 1, el número real es -7510. Si el bit de signo fuese 0, el número hubiese sido 01101012 = +5310 (sin complementar a dos).

viernes, 20 de enero de 2012

AIS impresionante

AIS. Sistema automático se detección, utilizado en las embarcaciones, un mundo que no conocía , y para el cual estoy trabajando ahora. http://en.wikipedia.org/wiki/Automatic_Identification_System

martes, 17 de enero de 2012

Una nueva etapa

Se cierra un capítulo, adiós al desarrollo de software en intelcode, hoy fue lo ultimo día , me da nostalgia dejar a excelentes personas que conocí. Pero la función debe continuar.

domingo, 15 de enero de 2012

Desarrollo de aplicaciones multiplataforma parte 2

Después de algunos días, sin escribir, pongo a disposición de mis apreciables lectores un diagrama de lo que podría ser la infraestructura para desarrollos multiplataforma.

sábado, 31 de diciembre de 2011

Desarrollo de software multiplataforma :: parte 1.


Bueno, como ultimo día del año 2011, después de una semana de intensas investigaciones, he decidido escribir un post acerca de aplicaciones multiplataforma.

Bueno, solo me centrare a mencionar aplicaciones que tengan que ver con aplicaciones de escritorio, porque aunque hay fragmentación en las plataformas de escritorio, en las aplicaciones móviles, aun hay mucho mas fragmentación, y por si solo ese tema, debería dar para otro post.

Algunos datos.

Aun la cuota de mercado de computadoras de escritorio, que no usan Windows, sigue rondando el 10 %, o menor.

Windows, se mueve rápidamente, aprovechando que tienen el sartén por el mango, cuando sus competidores están creciendo, en algún movimiento de ficha, los deja mordiendo el polvo con compatibilidad obsoleta, o lo que es lo mismo, cuando quieres sacar algo compatible con Windows el que sea, y te tardaste un año, Windows habrá sacado algo nuevo (Windows 8 -> metro).

Pero, bueno, cual es el panorama para desarrollar aplicaciones de escritorio que sean multiplataforma, con herramientas libres de pagar, bien soportadas, con lenguajes de programación modernos, con un entorno de desarrollo integrado sencillo de aprender y además que no sea caro, además que no tenga muchos bugs.

Bueno baste decir que hay varias opciones para todo, pero se antoja confuso, entornos de programación, lenguajes de programación, herramientas para desarrollo de interfaz grafica (GUI ToolKits), sistemas operativos, arrggghhh, ya me dio mello seguir con este articulo, en verdad es feo ponerse a desenmarañar tantas cosas.

Créanme, que esto de lo que hablo, es la piedra angular del desarrollo de software, cuando inicias a desarrollar software, hablamos de miles de horas hombres que podrían ser desperdiciadas, si el arquitecto de software se equivoca.