Posts Tagged: Proyectos


30
mar 12

La Web Tridimensional : WebGL

No Gravatar

WebGL Es una especificación estándar en desarrollo que permite mostrar gráficos tridimensionales acelerados por hardware en navegadores web sin necesidad de instalar software adicional al navegador (plug-ins).

En realidad es una API para javascript que permite usar OpengGL incorporado en los navegadores.[1]

WebGL utiliza un elemento de HTML5 llamado Canvas el cual permite mostrar gráficos 2D e imágenes de una manera dinámica, canvas consiste de una región dibujable definida en código HTML con los atributos de altura y espesor, el código javascript permite acceder a esa región a través de un conjunto completo de funciones de dibujo 2D, esto es lo que permite generar los gráficos dinámicamente. [2]

Esta especificación es gestionada por el consorcio de tecnología Kronos Group.

http://www.khronos.org/webgl/

Para comenzar hay unos muy buenos tutoriales para aprender a usar WebGL [3], que son referencia obligada para entender como funciona esta tecnología.

Para acelerar las cosas existe una biblioteca 3D en javascript llamada three.js, la biblioteca provee <canvas>, <svg> y render WebGL.[4] creada por mrdoob : https://github.com/mrdoob

demos

Demos de mrdoob

En esta biblioteca se incluyen funcionalidades para manejo de camaras (ortografica y perspectiva), funciones para manejar la geometria, el color, vertices, splines, matrices, luces, materiales, objetos (esqueletos, modelos, modelos animados, particulas, etc), renders (canvas, dom, svg, webgl), escenas, texturas y muchas otras mas : http://mrdoob.github.com/three.js/docs/48/#Camera

Y este es un ejemplo de un trabajo muy bueno usando esta tecnología Web3D.

http://www.ro.me/

Una cuestión interesante sobre WebGL es que es un estandar que ha sido adoptado para integrarlo en las nuevas versiones de los navegadores web de Google (chrome) y Mozilla (firefox) incluso de Apple (safari) pero no así en internet explorer de Microsoft pues menciona cuestiones de seguridad para no hacerlo. Por el momento WebGL sigue avanzado.

Nota:

“Los gráficos vectoriales escalables (svg) es una especificación para describir gráficos vectoriales bidimensionales estáticos o anímados en formato xml.” [5] 

Referencias:

[1]http://en.wikipedia.org/wiki/Canvas_element


[2]http://en.wikipedia.org/wiki/WebGL


[3]http://learningwebgl.com/blog/?page_id=1217


[4]https://github.com/mrdoob/three.js/


[5]http://en.wikipedia.org/wiki/Scalable_Vector_Graphics


[6]http://es.wikipedia.org/wiki/Khronos_Group

Imagen y demos:

http://mrdoob.github.com/three.js/


http://mrdoob.com/


http://alteredqualia.com/

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

3
feb 12

Certificaciones de Calidad en Desarrollo de Software

No Gravatar
   Equipo

El outsourcing de desarrollo de software ha madurado en tan solo un par de décadas y la certificación de calidad ha adquirido un significado totalmente nuevo para los proveedores y clientes.

Hay dos grandes tipos de certificaciones de calidad que se puede obtener por las empresas de desarrollo de software. Una de ellas es la norma ISO 9001:2000 y el otro los distintos niveles de SEI CMM.

CMM: Modelo orientado a la mejora de los procesos empresariales, evaluando la calidad de los productos o servicios que desarrolla y clasificándolos según cinco niveles de madurez.

Uno de los principales beneficios de la certificación de calidad en una empresa de desarrollo de software es que muestra la madurez y la continuidad de la organización.

Ambas certificaciones de calidad prestan atención a los procesos. En ISO se tienen directrices del estado que debe definir un proceso y asegurarse que se está siendo seguido mientras que SEI CMM son dictados de ciertos parámetros de un proceso en el que la empresa debería funcionar.

Las empresas no certificadas tienen un momento difícil al competir con una empresa certificada y esa es la razón por la cual más y más empresas de desarrollo de software se están moviendo hacia la certificación de calidad.

La mayoría de medianas y grandes empresas se están moviendo hacia la certificación SEI CMM.

Aunque se ha mencionado la certificación ISO 9001:2000 de calidad, y la de SEI CMM} hay otras certificaciones de tecnología específica que también puede ser obtenida por las empresas de desarrollo de software. Por lo general, estas certificaciones son dadas por los fabricantes de software u organismos independientes y, aunque podría no ser tan crítica como las certificaciones de calidad mencionadas, tienen un buen nivel de importancia en la evaluación de un proveedor.

MOPROSOF

Modelo de Procesos para la Industria del Software. Modelo para la mejora y evaluación de los procesos de desarrollo y mantenimiento de sistemas y productos de software. Desarrollado por la Asociación Mexicana para la Calidad en Ingeniería de Software a través de la Facultad de Ciencias de la Universidad Nacional Autónoma de México (UNAM) y a solicitud de la Secretaría de Economía para obtener una norma mexicana que resulte apropiada a las características de tamaño de la gran mayoría de empresas mexicanas de desarrollo y mantenimiento de software.

Moprosoft considera que los modelos de evaluación y mejora CMMI e ISO/IEC 15504 no resultan apropiados para empresas pequeñas y medianas de desarrollo y mantenimiento de software.

Importancia de la certificación de un proveedor aliado en empresa de software

Ventajas para la Empresa Responsable

Mantener su capacidad de respuesta al cliente.
Mantener la calidad en sus procesos de desarrollo e implantación de sistemas.
Continuidad en su desarrollo empresarial y generación de historia.

Ventajas para ambas empresas
Desarrollo de alianzas estratégicas.
Continuidad en desarrollos e implantaciones (experiencia).
Mayor posibilidad de obtener proyectos.
Mayor probabilidad de ingresos constantes.

Riesgos a combatir
Aumento de precio al cliente.

Más Info:

 

Imagen :
    http://blog.wikimemoires.com/2011/08/evolution-de-la-gestion-de-grh/

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

27
ene 12

Invocando un método de un objeto especifico usando Quartz .NET y Spring .NET

No Gravatar

En algunas ocaciones necesitamos dejar una tarea programada que se ejecute cada cierto tiempo, para hacer eso se puede utilizar Quartz.

¿Que es Quartz?

Es un sistema de calendarización de tareas que puede ser integrado o usado virtualmente con cualquier otro sistema de software, en este contexto una tarea calendarizada (“job scheduler”) es un sistema que es responsable de ejecutar o notificar a otros componentes de software cuando un tiempo predeterminado ha sucedido.
http://quartznet.sourceforge.net/faq.html

¿Que es un Trigger?

Es un procedimiento que se ejecuta cuando se cumple una condición establecida al realizar una operación.

¿Que es Spring?

Es un “framework” de código abierto de desarrollo de aplicaciones para la plataforma Java. La primera versión fue escrita por Rod Jonhson, quien lo lanzó primero con la publicación de su libro Expert One-on-One Java EE Design and Development (Wrox Press, octubre 2002). También hay una versión para la plataforma .NET, Spring .NET.
http://es.wikipedia.org/wiki/Spring_Framework
http://www.springframework.net/doc-latest/reference/html/introduction.html#introduction-overview

¿Que es .NET?

.Net es un “framework” de Microsoft que hace un énfasis en la transparencia de redes, con independencia de plataforma de hardware y que permita un rápido desarrollo de aplicaciones.
http://es.wikipedia.org/wiki/.NET

Si estas utilizando el “framework” Spring .NET esto te puede ser de utilidad.

Entre las caracteristicas del “framework” Spring se encuentra la integración de clases para el soporte de calendarización, actualmente Spring soporta “Quartz Scheduler” (http://quartznet.sourceforge.net/).

“Quartz” usa objetos Trigger,Job y JobDetail para realizar calendarización de todo tipo de tareas.

Por propositos de conveniencia, Spring ofrese una serie de clases que simplifican el uso de “Quartz” en aplicaciones basadas en “Spring”.

Usando MethodInvokingJobDetailFactoryObject
En ocaciones se necesita invocar un método de un objeto especifico. Usando MethodInvokingJobDetailFactoryObject Se puede hacer de la siguiente manera:

JobDetail :


<object id="EjemploJob"
type="Spring.Scheduling.Quartz.MethodInvokingJobDetailFactoryObject, 
Spring.Scheduling.Quartz">
<property name="TargetObject" ref="smsService" />
<property name="TargetMethod" ref="EnviarUnMensaje" />
</object>

El resultado del ejemplo anterior será llamar el método “EnviarUnMensaje” de un objeto de la clase“smsService”


public class smsService {
  // propiedades y eventos
  public void EnviarUnMensaje() {
    // realizar la tarea de enviar un mensaje
  }
}
<object id="smsService" type="business.Sms.SmsServiceImp, enviosms.business"/>

Para hacer que los resultados de las tareas “MethodInvokingJobDetailFactoryObject” sean no concurrentes, poner la bandera “concurrent” a “false”.


<object id="EjemploJob"
type="Spring.Scheduling.Quartz.MethodInvokingJobDetailFactoryObject, 
Spring.Scheduling.Quartz">
<property name="TargetObject" ref="smsService" />
<property name="TargetMethod" ref="EnviarUnMensaje" />
<property name="Concurrent" value="false" />
</object>

Nota: Por omisión, las tareas se ejecutaran de manera simultanea

Configurando tareas usando “triggers” y SchedulerFactoryObject

Hemos creado una tarea “JobDetail” de ejemplo (EjemploJob), necesitamos ahora calendarizar esa tarea. Esto se hace usando “triggers” y SchedulerFactoryObject.
Varios tipos de “triggers” estan disponibles con “Quartz”. “Spring” ofrece dos subclases de “triggers” :

CronTriggerObject and SimpleTriggerObject.

Usaremos de ejemplo un SimpleTriggerObject.

Los “Triggers” necesitan ser calendarizados. “Spring” ofrece un SchedulerFactoryObject que trata a los “triggers” como propiedades, SchedulerFactoryObject calendariza las tareas actuales con esos “triggers”.


<objectid="TriggerEjemplo" 
type="Spring.Scheduling.Quartz.SimpleTriggerObject, 
Spring.Scheduling.Quartz">

<property name="JobDetail" ref="EjemploJob" />

<!-- 10 segundos -->

<property name="StartDelay" value="10s" />

<!-- repetir cada 120 segundos -->

<property name="RepeatInterval" value="120s" />

</object>

El “trigger” configurado se ejecutara cada 50 segundos con un retardo inicial de 10 segundos.
Ya solo resta configurar el “SchedulerFactoryObject”


<object id="quartzSchedulerFactory"
type="Spring.Scheduling.Quartz.SchedulerFactoryObject, Spring.Scheduling.Quartz">
<property name="triggers">
<list>
<ref object="TriggerEjemplo" />
</list>
</property>
</object>

Usando Quartz tendremos en nuestra aplicación un proceso que se repite cada 120 segundos y que
hace la llamada al evento EnviarUnMensaje() de un objeto de la clase smsService.

Más info aqui:

http://www.springframework.net/docs/1.2.0/reference/html/scheduling.html

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

20
ene 12

Una visión sin acción es un sueño

No Gravatar

¿Que es una visión?

Visión es el resultado de nuestros sueños en acción, generalmente una visión precede al éxito tanto para las naciones, para las personas como para las empresas”

Joel Baker

La visión tiene un significado de poder ver a futuro el alcance de la empresa, por eso es importante tener claro lo que el negocio es y lo que debería ser en 3, 5 o 10 años, pero ademas debe ser una vista que sea realista y creible para la organización, por lo que si la visión no se convierte en creencia, puede que esta no sirva para nada pues como algunos autores comentan “El poder de las creencias genera resultados.”,  cabe decir que las creencias son las que asumen las personas internamente.

En muchas ocasiones dar el primer paso para realizar algo diferente es muy dificil, sobre todo cuando se esta en un momento de estabilidad o de éxito, o se llega a una situación donde ya no se puede crecer pero los ingresos económicos son muy buenos, en estos casos hay que tener en mente que “ NINGÚN CAMBIO PARTE DEL ESTADO DE COMODIDAD”.

Por eso los cambios nos hacen poner en marcha todas nuestras capacidades para adaptarnos y es en esos momentos cuando pueden darse excelentes oportunidades, nacen nuevas ideas.

Una visión sin acción es un sueño.

Una acción sin visión carece de sentido.

Una visión puesta en practica puede cambiar el mundo”

Joel Baker

QbitCumple

QbitCumple

El día de mañana Qbit Mexhico cumple 4 años desde que comenzamos a emprender acciones para convertir en realidad nuestra visión, han sido momentos de crecimiento y aprendizaje, de nuevos proyectos, de relación con clientes, de colaboración con las personas que nos apoyan, de toma de decisiones, de desarrollar con nuevas tecnologías, de ir a eventos, aún falta camino por recorrer esquivando obstáculos usando estrategias, pero nuestra misión sigue día a día para darle la dirección adecuada a Qbit. Gracias a todos nuestros clientes,amigos y seres queridos que nos han acompañado durante estos años.

 

El poder de una visión:

http://www.starthrower.com/power_of_vision.htm

http://www.starthrower.com/joel_barker.htm

Gorrito de cumple :

http://nicecliparts.com/images-Birthday_Hat.php

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

17
ene 12

Frameworks, como elegirlos

No Gravatar
Framework como elegirlos

Framework como elegirlos

He pensado en esto unas mil veces y siempre llego a la conclusión de que aunque los frameworks hacen la vida más fácil (en algunos casos), el proceso de desarrollo más rápido y mejora las capacidades de trabajo en equipo, es necesario siempre considerar el uso o no de este tipo de herramientas. Desde mi punto de vista, trataré de explicar que se necesita para elegir un framework.

Características

Basándose en una lista de características del software a desarrollar, un framework debería de cumplir con dicha lista sin agregar complejidad al desarrollo mismo (también conocido como código extra). Suponiendo que quiero desarrollar una aplicación donde básicamente quiero tener usuarios y cada usuario tenga una lista de tareas, pues bien asumo que utilizaré un módulo de usuarios y otro para creación de tareas. Hasta este punto el framework no es necesario.. pero que tal si en mis previsiones esta el realizar funciones más complejas como agregar un calendario para tener un registro de eventos, tomados segun se fueron escribiendo las tareas.. todo esto de forma social y abierta a los demás usuarios .. ok, ya se empieza a complicar y seguro algunos dirían que el framework no se necesita.. pero lo que puede aportar el framework es que aparte de cubrir las características básicas, también se puede adaptar a las características futuras, manteniendo siempre una línea de desarrollo relativamente sencilla de mantener.

Extensible

Con un framework se resuelve más de un problema, de hecho se resuelven problemas que posiblemente no sabías que existian en tu código y eso antes de que te sentaras a codificar. La gran mayoría de frameworks cuentan con repositorios de extensiones mantenidas por la comunidad que extienden funciones y componentes de sus funcionalidades básicas. Es necesario mencionar que extensible no se refiere solamente a la cantidad de extensiones, sino también a la calidad y facilidad con que se pueden mantener y crear tus propias extensiones.

Prototipos que determinen su uso

Creo que experimentar con nuevas tecnologías te hace entender en que momento utilizarlas. Si no has experimentado con nuevas opciones de desarrollo, entonces cada vez que necesites utilizar una nueva herramienta tendrás que gastar algo de tiempo y esfuerzo extra para aprender. Una práctica recomendable es siempre construir un pequeño prototipo donde trates de agrupar por ejemplo interacciones con formularios, almacenamiento en BD y uso de javascript. Me refiero a algo muy simple que quizás con algo de documentación puedas construir en un solo día.

Ayuda

Los frameworks con más tiempo de vida suelen tener muy buena documentación en comparación con los nuevos. Foros, listas de correo, blogs, e incluso sitios como StackOverflow proporcionan una gran cantidad de información. Si hay poca actividad en los foros o listas de correo, definitivamente no es una buena opción la que has elegido por lo que una buena idea sería abandonar ese framework. Encontrar ayuda o ejemplos de código es muy importante en el proceso de aprendizaje de nuevas herramientas. En cuanto a los blogs no dejan de ser útiles porque te dicen que esta pasando alrededor de un framework.

Hay que recordar que el framework aporta agilidad y orden al desarrollo de software, si hace todo lo contrario es porque has metido la pata y debes buscar una mejor herramienta.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

13
ene 12

Desarrollo de aplicaciones para ambientes tridimensionales

No Gravatar

Una de las aplicaciones que hemos desarrollado tiene que ver con la visualizacion de ambientes tridimensionales, y realiza entre otras cosas navegación, despieces y simulaciones y permite el control documental de proyectos, este desarrollo es una segunda versión mejorada de otro sistema que anteriormente hicimos con un motor gráfico llamado Glscene, para Delphi.

Para mejorar la nueva versión recurrimos a un motor gráfico con mejores caracteristicas (NeoAxis) y nos trasladamos a Visual Studio para desarrollar con C#, el motor gráfico que utilizamos cumplió con las espectativas, se mejoró el tiempo de carga de los modelos 3d al utilizar un formato más compacto en los modelos, permitió tener mayor cantidad de objetos y escenarios en una misma escena, además de otras caracteristicas que el anterior motor no tenia.

“NeoAxis Game Engine” es un moderno motor grafico 3D para simulaciones 3D, visualizaciones y juegos.

Este motor que utilizamos es una excelente herramienta para desarrollar aplicaciones 3d de alto impacto.

Algunas de sus caracteristicas son :

  • Las aplicaciones creadas con NeoAxis pueden correr en Windows, Mac y Linux
  • Tiene varias herramientas tales como Editores : Objetos, de GUI, de Mapas,
  • de Modelo Físico, de Terreno,de Sistema de Partículas, para calcular Luces Estaticas.
  • Importa modelos y texturas de 3D Studio Max, Maya, Softimage, XSI, Blender.
  • API de programación basada en .Net y lenguaje C#
  • Efectos especiales (efectos de partículas, Animación, etc)
  • Manejo de Luces, manejo de materiales, efecto de agua
  • Efectos de Física ( Cuerpos rigidos, Uniones, Vehículos, soporta NVIDIA PhysX y ODE)
  • Soporte para Red(Multijugador, Servidor dedicado)
  • Manejo de dispositivos de entrada
  • Como joysticks, Kinect, controladores Xbox 360 .
  • Desarrollo Web (a través de NeoAxos Wen Player) usando los navegadores web mas conocidos
  • Lo más importante, cuenta con un desarrollo constante y el soporte del equipo de desarrollo y muy buena documentación.

http://www.neoaxis.com/

Esta imagen  del sitio de NeoAxis muestra una aplicación para la simulación de accidentes en fábricas (un ejemplo de lo que se puede hacer con el motor), este ejemplo es un poco similar a lo que hemos estado desarrollando.

Aplicaciones como esta son posibles de desarrollar por el equipo de Qbit Mexhico.

 

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

19
mar 10

Patrones de diseño para interfaces web

No Gravatar
Patrones de Diseño Web

Patrones de Diseño Web

Llevo mucho tiempo desarrollando aplicaciones web, durante todo este tiempo he aprendido mucho sobre usabilidad, interfaces y diseño. Cada proyecto de desarrollo es todo un reto y cada cliente tiene diferentes necesidades y diferente enfoque a como desea ver su aplicación. Lo que no saben y que es parte de la educación y comunicación que debe de mantenerse entre clientes y desarrolladores es que hay subvenciones y patrones que se deben de seguir para lograr una mejor interacción entre la aplicación y los usuarios, esto es lo que se le conoce como patrones de diseño.

Un patrón de diseño o interfaz (creo que así se entiende mejor), es la conexión física y hasta emocional entre dos aparatos, entidades o sistemas (Traduzcamos esto como la capacidad que tiene el usuario de comunicarse con una aplicación).

El desarrollo de interfaces para aplicaciones web esta basado en una serie de reglas que ya han sido definidas, todas o una mayoría adoptadas por la experiencia de muchos desarrolladores, diseñadores y psicológos que han analizado la manera en que las aplicaciones son utilizadas por los usuarios.

Pues resulta que para lograr una buena interfaz se necesita siempre el trabajo coordinado entre diseñadores y programadores (la discusión que nunca termina) y aunque cada uno tiene una percepción mental diferente de lo que puede ser una interfaz, una buena comunicación pueden ayudar a mejorar enormemente una aplicación consiguiendo interfaces atractivas, por eso es bueno que ambas personas aunque trabajan en diferentes partes del desarrollo de una aplicación web tengan similitud de conocimientos en cuanto a lo que es estandar y se necesita tener como base en una aplicación.

No hay que olvidar que los usuarios también han adquirido cierto grado de experiencia en cuanto a la navegación por la web y fácilmente reconocen elementos ubicados en lugares ya definidos por estos patrones, por eso es la importancia de seguir estos estándares de diseño, algunos ejemplos por citar algunos son los siguientes:

Localización de Perfil y Salida de la aplicación

Definido en la parte superior derecha de la página, es un pequeño cuadro desde el cual podemos tener acceso a nuestro perfil mediante un enlace, ahí mismo se encuentra un enlace que nos lleva a abandonar la aplicación de manera segura. Los estilos y la información contenida en este contenedor varian, pero es normal encontrarse al menos un enlace para ver/modificar el perfil del usuario y otro para salir de la aplicación.

Resultados de búsqueda

Los resultados de búsqueda por comodidad y facilidad a encontrar la información de manera rápida, se implementan mediante un cuadro de texto desde el cual se realiza la búsqueda, una vez que la búsqueda se ha realizado, el resultado aparece en forma de cascada donde se muestra información relacionada a la búsqueda. De manera predeterminada sabemos que cada resultado mostrado al hacer click nos debe de mostrar mucho más detalle.

Filtros de búsqueda

Al igual que los resultados de búsqueda, los filtros de búsqueda es una agrupación de términos de búsqueda generados a partir de la información más relevante, estos filtros sirven para indexar y obtener una muestra de resultados más específica, muy útiles para agilizar consultas de datos. De igual manera los resultados son mostrados en forma de cascada donde se muestra la información relacionada a la búsqueda.

Vistas Maestro – detalle

Las vistas maestro-detalle comunmente utilizada en diferentes tipos de aplicaciones no solamente web’s, definen la vista preliminar de un conjunto de datos, los grids o rejillas de resultados utilizan mucho este tipo de vistas para mostrar información relacionada a la fila que se ha seleccionado.

Generalmente la simplicidad será la mejor manera de representar una buena interfaz, muchas veces los usuarios no tienen el suficiente tiempo para darse a la búsqueda de un enlace o información específica, por lo que es muy recomendable enfocarse en no hacer perder el tiempo a los usuarios desarrollando interfaces limpia y sencillas. El diseño web y el contenido de este forman una estructura visual que debe de ser atractiva a la vista y gusto de un usuario.

Existe una ley muy clara, básica y aplicable al diseño de las interfaces (Ley de Fitt) que dice que mientras más grande y próximo al puntero del ratón este un objeto, mucho más sencillo será hacer click sobre él.

Adicionalmente al tema de las interfaces es bueno aplicar todos aquellos consejos que nos hacen mejorar nuestras aplicaciones para ofrecer una mejor experiencia de navegación a los usuarios.

Algunos consejos extras escenciales para mejorar la usabilidad

20 consejos de usabilidad esenciales para proyectos web c62550l

Consejos para mejorar la usabilidad de un blog

Usabilidad para principiantes

Fuentes:

http://designinginterfaces.com/
http://www.rosenfeldmedia.com/books/webforms/

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

11
feb 09

Una nueva herramienta en desarrollo SICAP

No Gravatar

SICAP es una herramienta de colaboración para llevar el control, manejo y ejecución de proyectos de construcción civiles, hidroelectricos, mecanicos e hidráulicos.. El sistema como tarea básica es el encargado de administrar la documentación completa desde que se inicia un proyecto hasta su fin..

Puede que esto nos mantenga ocupados un par de meses, esta desarrollado para la web.. Realizado con C# para ASP.NET y componentes de DevExpress es una chulada visual.. Quizás con algo más de tiempo mientras se continua trabajando en su desarrollo podamos filtrar algunas capturas de pantalla..

Usando un potente motor de BD (Oracle) y como complemento el desarrollo de modelos tridimensionales por ahora solamente como aplicación de escritorio (quizas en un futuro para la web con cualquier engine 3D de flash), es una herramienta muy completa.. competitiva y confiable.. jejeje.!! vaya comercial el que me he lanzado.. n_n

, , , , , , , , , , ,

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

21
nov 08

Generacion de Eyetracking y Heatmap

No Gravatar

Inspirado en articulos de Jackob Nielsen en los que habla sobre Eyetracking que solamente se trata sobre los patrones de lectura que tienen los usuarios al visitar un sitio web.. es que he decidido iniciar una pequeña o al menos así pensé en su momento.. entonces una muy pequeña aplicación en la que pudiera obtener ese tipo de información a partir de las coordenadas de movimiento del mouse.. No se porque pero se me ocurrió que el mouse es nuestro acceso al medio digital por llamarlo así.. y normalmente en un porcentaje muy alto.. lo que leemos lo seguimos con el mouse.. talvez para no perdernos.. he de suponer que ha algunos les ha pasado que cuando llegan a un sitio y les cambian el mouse por algun tipo de muñequito o simplemente nos ocultan el mouse.. nos ponemos un poco desesperados.. y es que no muchas personas saben navegar si no es con el mouse..

La diferencia de lo que ya se ha hecho y lo que planteo hacer es que Eyetracking segun he leido se basa en algoritmos que toman las etiquetas de html y las procesan dandoles prioridades y valores segun estadisticas anteriormente tomadas de estudios de usabilidad. Lo que hare es un poco diferente.. ya que pretendo capturar los movimientos del mouse y registrarlos en un archivo.. que luego sería procesado por una script del lado del servidor que al final nos crearía una imagen llamada heatmap y que desvelaria las areas sencibles de nuestra web..

Quizás suene técnico y algo difícil de entender.. pero inicié con la idea ayer.. y hoy por la tarde ya he terminado con la aplicación del lado del cliente.. No se si sea buena idea.. pero he decidido hacerlo un plugin dependiente de Mootools..

Aparte de toda esta palabrería, el desarrollo de esta aplicación es motivada por la necesidad de conocer que es lo que más le importa a nuestros visitantes y que es lo que más les llama la atención.. todo esto solamente incluyendo el script en nuestro sitio web y listo.. Zeru por su parte me estara ayudando con la generación de la imagen.. el sabrá como hacerlo.. en eso no me incluyo..

Más adelante empezaré a dar más detalles al respecto..

, , , , ,

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

28
oct 08

BEA Tuxedo

No Gravatar

Tuxedo es un producto de la empresa BEA recientemente en proceso de fusión con Oracle.

Tuxedo es un framework que se encarga de administrar transacciones, te permite concentrarte en la funcionalidad y no tener que inventar la parte de transacciones que es muy compleja. Imagina que requieres hacer un proceso compuesto de 4 o 5 pasos, cada paso es ejecutado en sitios distintos, cada paso hace algo muy particular como actualizar un archivo, insertar un registro en una base de datos, dar aviso a otro proceso, etc etc. Si alguno e estos pasos falla, la transacción debe ser deshecha, por ejemplo si el paso 4 falla, el paso 3, 2 y 1 no sirven de nada y debe hacerse un rollback. Ideal para usarse en bancos. Actualmente es muy utilizado en instituciones financieras donde se tiene alto flujo transaccional.

Tuxedo es va bastante viejo, existe desde hace mas de 10 años, lo cual no es necesariamente malo. Otra cualidad importante es que puede ser accesado desde distintos lenguajes y se puede comunicar con otros procesos mediante IPC.

¿Que tiene que ver todo esto con Qbit? A uno de nuestros cliente le fue encargada la tarea de substituir Tuxedo por … otra cosa. Pero… uno de los requerimientos es no reescribir el conjunto de procesos actuales, escritos en C y que están hecho especialmente para poder ser invocados y administrados por Tuxedo. Es decir, lo que se pretende es prácticamente, hacer un clon de Tuxedo, por supuesto únicamente de la parte de Tuxedo que sea esencial, pues sustituirlo todo seria muy complicado, Tuxedo es enorme.

Nuestro cliente nos ha encargado la parte de C y C++, mientras que ellos se encargaran de la parte en Java. Hay que reescribir un subconjunto del API de Tuxedo y recompilar los procesos escritos en C, haciendolos creer que estan en Tuxedo. Hasta al momento vamos muy bien, es un trabajo muy interesante.

Compartir y Disfrutar

  • Facebook
  • Twitter
  • Delicious
  • Digg
  • StumbleUpon

Qbit Mexhico Blog is using WP-Gravatar