Punksolid Tecnologia, Curiosidades, Sistemas de Informacion y un poco de Religion

20sep/100

Entorno de desarrollo para Symbian en Linux

Programa para sincronizacion Conduit

Symbian Nokia PythonRecientemente he tenido interés en desarrollar una aplicación para móviles symbian con Python for S60 tambien conocido como Pys60, cabe mencionar que soy novato en esto y no tengo idea de como la mayoria de los desarrolladores tienen configurado su entorno.

En el articulo anterior expliqué como Conectar Nokia 5530 por bluetooth y RFComm para desarrollo en Python en Ubuntu 10.04 pero al funcionar en la consola de linux no es practico estar viendo o estar ejecutando el codigo al vuelo, así que expongo lo que creo es una mejor manera.

También descarté usar el emulador de symbian para Windows (tristemente no hay emulador para linux, y no parece que vaya haber pronto) ya que parece lento y pienso que si vamos a batallar lo mismo correr el script en el emulador que en el mismo celular ¿que mejor que hacerlo en el celular?.

Interprete Python para Symbian

Para que una aplicacion hecha en python funcione en el celular de manera comercial necesita elaborarse un paquete .sis, de otra manera si intentas ejecutar un .py lo va a leer como archivo de texto, para eso se ocupa el interprete Python (Python_2.0.0.sis)  y el PythonScriptShell(PythonScriptShell_2.0.0_3_2.sis) eso se descarga desde https://garage.maemo.org/projects/pys60/ (PythonForS60_2.0.0.tar.gz) ambos se encuentran en el directorio /PythonForS60/PyS60Dependencies/.  Pasan los archivos al celular y los ejecutan en el siguiente orden Python primero y despues el PythonScriptShell.

Conexion PC - Celular

Ubuntu linux viene preparado para conectar por bluetooth y tener acceso a los archivos para eso vamos a dar en el icono de bluetooth y 'Configurar un dispositivo nuevo', seguimos los pasos indicados en el que tendremos que proporcionar la clave provista por ubuntu desde el celular.

Despues de emparejar el celular ocupamos saber la direccion de la carpeta a la que tiene acceso el interprete python, que suele ser /data/python, para eso vamos a entrar desde el navegador de archivos dando clic en el icono de bluetooth de nuevo y luego, examinar los archivos en el dispositivo, buscamos el directorio de python y una vez ahí veremos varios archivos .py de demostracion, estamos en la carpeta correcta, ahora presionamos las teclas Ctrl + L para saber la direccion y nos debe aparecer algo similar a esto en la parte superior

obex://[00:BD:3A:70:9B:EB]/E:/data/python

Nautilus

En la barra de direcciones después de presionar Ctrl + L estará la dirección que necesitaremos mas adelante.

Sincronizacion

Suponiendo que la carpeta del proyecto y todo el entorno python ya lo tenemos instalado en la computadora, procederemos a hacer una sincronizacion, para eso utilizo el programa Conduit que es bastante practico, ligero, eficiente y lo podemos descargar desde los repositorios, nosotros solo utilizaremos sincronizacion de una direccion entre carpetas, primero arrastramos una 'Carpeta' desde 'Files and Folders' hacia la derecha le damos clic derecho al elemento y luego en 'Configure Item' , seleccionamos la carpeta donde tenemos nuestro proyecto, dejando desmarcadas las opciones avanzadas presionamos cerrar, luego añadimos otra carpeta del lado derecho de la carpeta que recien creamos y ponemos la direccion obtenida en el paso de Conexion PC - Celular dando clic donde está el icono del lapiz.

Despues de eso ya está configurado todo, pero para eficiencia daremos clic derecho sobre la linea negra que une las dos carpetas y nos vamos a 'Sincronization Options' y luego en 'Always Up to Date' con eso en cuanto guardemos el archivo empezará la sincronizacion, que apenas tarda algunos segundos.

Programa para sincronizacion Conduit

Así debería quedar después de la configuración explicada.

Y eso es todo, si tienes alguna duda o crees que hace falta algo puedes dejarlo en los comentarios.

Enlaces

How to write a python for Series 60 script and test it

Pys60 Actualizado

29jul/100

Problema común de software para discapacitados

Esta opinion era muy larga para escribirla en un twitt, así que aprovechemos este espacio. Uno de los temas que tengo una fascinacion personal es la accesibilidad para discapacitados, y hay un error que se comete comúnmente en todos aquellos softwares que sirven para escribir, y activan el teclado, para explicar mejor eso les detallo el siguiente ejemplo.

NeuroKey

Imagen completa de Neurokey

Para saber la diferencia de esta aplicacion debemos conocer las comunes, una de las que recuerdo es NeuroKey, un software que bien ideado puede ser una maravilla en conjunto con el hardware que tiene (Epoc Emotiv),  el problema con este tipo de software, es que los encargados de usabilidad y accesibilidad olvidan por completo a los usuarios objetivos, discapacitados que no pueden mover mas que unas pestañas, o dedos o cualquier cosa.

Para analizar NeuroKey pueden ver la imagen superior, basicamente tiene 3 areas, la de configuracion donde se elige la forma en la que se van a activar los 5 triggers, la de cajas de texto donde se ve lo que se ha escrito y la del teclado que va iluminando de color amarillo tecla por tecla.

Si se piensa o se conoce a una persona discapacitada, lo que menos le importa son las opciones que tenga el software, lo primordial es que se pueda comunicar, y para ello solo necesitamos el abecedario, y el espacio, si nos basamos en neurokey, basicamente nos quedamos con los primeros dos renglones del teclado mas la barra espaciadora, aun así, todavia se puede mejorar, si imaginamos que queremos la tecla N y la seleccion en amarillo dura 1 segundo en cada posicion tardariamos 14 segundos en tenerla seleccionada, por lo tanto podriamos intentar acomodarlos en un numero de filas igual al numero de columnas algo como 5x5 variando la ultima fila con las letras restantes, este acomodo nos serviria para manejar el selector en forma de coordenadas, iluminando la fila que queremos y una vez seleccionada con un trigger, pasar a seleccionar las columnas, lo que reduciria a 6 segundos la seleccion de la letra N. Y sin necesidad de utilizar triggers para subir y bajar de renglon, usando solo 1 trigger, lo que le facilitaria al discapacitado.

Un buen ejemplo

Leyendo engadget veo el siguiente video acerca de un software para controlar un sistema windows a través  la inhalación con la nariz, lo sorprendente de esto no es el sistema de activacion de comandos, si no el software en si, donde priorizan en el acceso a la escritura de una forma asombrosa.


Este software es algo que ya habia deseado e ideado hacer, no me importa que me hayan ganado estoy feliz de ver que lo han hecho, tiene todo lo que un software para escribir necesita, seleccion de letras por coordenadas con las letras basicas y texto predictivo como el de los telefonos celulares, con un solo trigger.

¿Y ustedes creen que haya alguna manera de mejorarlo?

Enlaces

The nose knows... how to let quadriplegics move and speak (video)

Sniff-detector allows paralysed people to write messages, surf the net and drive a wheelchair

27ene/095

Photo Gallery en Playstation 3, Firmware 2.60

Primero que nada siento no haber posteado desde el 25 de diciembre, pero es que las cosas que he querido escribir no creo que sean lo suficientemente relevantes, además de que Santa me regaló un Playstation 3.

Y como mi vida a estado pasando enfrente del PS3, me quedé impresionado ahora que pruebo está aplicacion que viene integrada con el firmware 2.60.

Photo Gallery me pareció sumamente veloz, bello y con suficientes opciones para ser mi gestor de fotos preferido, te permite ver los datos EXIF de las fotografias.

Lo que mas me gustó son las opciones de agrupación de las imágenes, pudiendo ser:

  • Por Cantidad de Personas
  • Por Edades de las Personas
  • Por Expresion de los Rostros
  • Por Color predominante
  • Por Tipo de Camara
  • Por Fecha de Integración
  • Por Albums

Además puedes poner listas de reproducción junto con musica del disco duro o CD, con 5 tipos de transiciones de imágenes distintas, la cual hay una llamada retrato que hace un acercamiento o alejamiento al final de cada foto tomando en cuenta la posición de los rostros.

Y como una imagen vale mas que mil palabras, aqui les va un vídeo.

11dic/080

Ya estamos en WordPress 2.7

He actualizado el Blog a la versión 2.7 de WordPress, las mejoras principales son del lado del administrador, ahora tiene una interfaz que me ha gustado mucho.

Del lado de ustedes, lectores, ahora pueden contestar a un comentario y se pueden crear comentarios anidados, también suscribirse a los comentarios para cuando alguien comente en el post. Cosa que ya se podía pero con un plugin.

30oct/082

Mashups y la Web 2.0 (Diapositivas)

Diapositiva 4.-(Web 2.0) Para poder entender que son las Mashups debemos analizar que es la Web 2.0, brevemente podemos decir que la web 2.0 es el sucesor de la Web estática 1.0, donde cada pagina era escrita manualmente mediante código HTML.

Diapositiva 5.-(Web 2.0 y Tu)  No hay receta para decir que una web es 2.0, pero hay varios elementos y características que hacen una web 2.0, como Ajax, Mashups, XML, WOM, Adsense, Cloud, Blogosfera, etcétera.

Incluso podemos definir Web 2.0 mediante algun chiste como este:

Acabo de poner un mashup bien fregon en mi vlog. Uso SOAP y Ajax para poner las tiendas de comidas para perros en un Mapa de Google. Ahora lo que necesito es generar polémica y comentarios en la blogosfera y asi estaré dentro de los mejores, eso sin mencionar las ganancias de Adsense

¿Que es la web 2.0?

Es un cambio de forma de la web y la unión de algunas características:

  • Participación
  • Personalización y colaboración
  • Rich Internet Apps

La web 1.0 no era así, era solo comunicación unidireccional, donde las grandes empresas decidían que publicar.

Ahora la comunicación se da en todas direcciones, lo cual supone una mayor personalización.

Diapositiva 6.-(2.0) Es la evolución de las aplicaciones como las conocemos:

La comunicación también se da de personas a personas y de maquinas a maquinas, la comunicación de personas a maquinas ya existía desde la web 1.0.

Personas a personas => Redes sociales

Maquinas a Maquinas =>Mashups

Diapositiva 7.-(Por que es interesante)

Diariamente navegamos en sitios web con utilidad impresionante que ni siquiera generan sus propios contenidos (wikipedia, facebook, n+...), y entonces somos Nosotros quienes generamos ese valioso contenido para ellas.

Esos sitios son portales de Internet con ganancias multimillonarias, pero a nosotros no nos pagan nada por usarlos, es entonces cuando podemos agarrar su contenido en una mashup y exprimirles su valor.

Diapositiva 8.- (Mashups) Es una mezcla de servicios donde un sitio web incrusta información de la que NO es dueño, eso supone un llenado de contenido de manera automática y sin administración.

Diapositiva 9.- (Ejemplo facebook) Facebook es una red social, que a su vez es una plataforma de desarrollo, entonces facebook no genera el contenido, lo generan los usuarios a través de su interacción, y facebook no crea las interacciones entre sus usuarios, lo hacen los desarrolladores externos que incrustan sus aplicaciones dentro de la misma plataforma.

Asi facebook gana mucho tiempo dejando que otros decidan como van a interactuar los usuarios, y los desarrolladores dejan que facebook se encargue de mantener y registrar a los usuarios que usaran sus aplicaciones.

Todos felices y contentos. Asi el usuario tiene infinidad de cosas que hacer en un sitio.

Diapositiva 10.-(Algunas mashups)

En este diagrama se marca con flechas rojas los sitios en los que los usuarios generan los contenidos, y con flechas grises, donde esos contenidos son utilizados para dar informacion adicional. El mejor ejemplo es Friendfeed.

Diapositiva 11.- (Elementos de un Mashup)

Tomado de Wikipedia

La arquitectura de los mashups está siempre compuesta de tres partes

El proveedor de contenidos: fuente de los datos. Los datos están disponibles vía una API y diferentes protocolos web como RSS, REST y Web Service.
El sitio mashup: es la nueva aplicación web que provee un nuevo servicio utilizando diferente información y de la que no es dueña.
El web browser cliente: es la interface de usuario del mashup. En una aplicación web, el contenido puede ser mezclado por los web browser clientes usando lenguaje web del lado del cliente. Por ejemplo javascript.
Cabe mencionar que mashup no es incrustar contenidos a travez de iframes o embebs como los vídeos de youtube en blogs.
Diapositiva 12.-(Ejemplos reales, Intercomunicación)
Del lado izquierdo podemos ver a iGoogle que a través de su API cualquiera puede hacer un Widget para incrustarlo dentro de la pagina. Del lado derecho una imagen generada automáticamente por frienfeed con mis ultimas actividades.
Diapositiva 13.-(Que significa el numero)