Hace unos días me contactó una persona preguntándome sobre una solución de toma de inventarios para dispositivos móviles que liberé de forma gratuita hace un par de años en internet de la cuál ya ni me acordaba, esta aplicación de lo que recuerdo es que permitía capturar 5 campos aparte de código y cantidad en una toma de inventarios muy básica para dispositivos con Windows Móbile, avanzando en la plática le sugerí mejor una solución más profesional que ofrece una empresa que distribuye terminales portátiles.
Esta persona después me volvió a contactar ya que a dónde lo mandé le preguntaron si su sistema soportaba importación de datos en formato csv, txt, xls, entonces él le pregunto al proveedor de su sistema administrativo y le dijo que si, pero que era un sistema de importación de datos que no era compatible con la solución de los móviles, su proveedor le dijo que podrían hacerle un desarrollo para que el sistema que tiene pudiera importar datos csv(algo muy simple), pero se vino de espaldas cuándo le dieron el costo del desarrollo por ese módulo personalizado de importación de datos.
Preguntándole más sobre su sistema pude saber que la base de datos que está detras de ese sistema propietario es MySQL, una base de datos libre, por lo que se me ocurrió algo para saber como el pudiera importar su información sin tantos dolores de cabeza.
La idea era que hiciera un registro de inventarios para saber que tablas y que consultas se realizaban al hacer la operación, la forma de saber las consultas es mediante una forma muy llana y simple, habilitando el log de mysql.
Generalmente el registro de transacciones de mysql debe estar desactivado, por cuestiones de performance en la base de datos, pero para este caso solo bastó editar el archivo de configuración my.cnf en la línea
log=PATH_DEL_LOG
Y reiniciar MySQL..
Con esto el realizó el registro de inventarios y solo revisando el archivo log de mysql se observa el usuario, la fecha, hora y consultas realizadas, de tal forma que fué una manera rápida de saber como esa aplicación propietaria afectaba los inventarios y con lo cuál ya podría desarrollarse una simple interfaz de importación de datos csv para que sea compatible con el sistema de toma de inventarios para dispositivos móviles.
Obviamente despues de verificar las transacciones de mysql, se volvió a desactivar el log para no afectar el rendimiento de MySQL.
< pensando en voz alta >
Hace un rato mientras estaba lavando los trastos acumulados durante la semana -sugerencia si cocinan espagueti, pónganle agua por lo menos a la cacerola si es que la van a dejar varios días ahí amontonada en el fregadero :$ -, entonces andaba oyendo algo de música, y mientras lavaba para poder cambiar de canción en canción tenía que buscar el celular y apretar un botón para que vía bluetooth indicarle al reproductor multimedia Amarok en Ubuntu Linux que pasara a la siguiente canción, entonces entre que las manos con jabón y que se te puede romper un plato, pensaba en como poder usar un dispositivo manos libres bluetooth que permitiría mediante comandos de voz cambiar las canciones, entre otras cosas en tú computadora.
Y siguiendo pensando en voz alta, recordé a PerlBox-Voice una herramienta basada en sphinx que es un software de reconocimiento de voz, el cuál había probado ya hace varios años y el cuál te permite ejecutar aplicaciones en Linux mediante comando de voz, la configuración de PerlBox-Voice es fácil, solo introduces las palabras y la aplicación a ejecutar cuándo perlbox "oiga" la palabra, entonces se me estuvo ocurriendo que pudiera hacerse una modificación en el código de PerlBox-voice para poder mandar diversos comandos a diversas aplicaciones mendiante la voz usando un manos libres bluetooth ó un micrófono conectado directamente al puerto de audio de la PC.
La diferencia pensada de la versión actual de PerlBox es que en vez de solo iniciar programas, también en base a comandos de Voz tome perfiles, algo que hacen los controles remotos bluetooth, de tal forma que si activas un perfil para Amarok, puedas usar las funciones de amarok para adelantar, atrasar, pausar, continuar una canción, si cambias a VLC puedas usar las funciones de voz para reproducción de DVDs, si cambias de perfil a modo TV puedas mandar comandos de voz para cambiar de canal, subir volúmen, etc.. y asi sucesivamente para diversos perfiles (fotografía, navegación web, gestión de archivos).
Lo que teóricamente pasa por mi cabeza es que haya un demonio que esté a la escucha de los comandos recibidos desde los clientes, esos clientes se encargarían de evaluar la información leída por Perlbox-voice y permitirían el cambio de perfil y las acciones si es que asi fueron ordenados, los demonios se encargarían enviar los comandos a las respectivas aplicaciones habilitadas del perfil aprovechando el uso de comandos remotos que tienen diversas aplicaciones.
Por ahora parece que puede ser factible hacerlo aprovechando la tecnología de PerlBox-voice.
pensando en voz alta >
Has de cuenta que es como la red inalámbrica que tienes en tú casa u oficina, con aquellos routers de infinitum tienes WiFI, con los CPE tendrías WiMax, solo que WiMax es una red inalámbrica que puede tener hasta decenas de kilómetros de alcance al igual que varias decenas de Megabits de ancho de banda, y si al igual que el WiFi también podría no tener costo usar la red.
¿ Porqué no tendría costo ?
Porqué al igual que el WiFi, en WiMax hay frecuencias libres que no son licenciadas, lo que significa que no requieres de permisos de la COFETEL aquí en México para poder instalarlas en tú casa, oficina, pueblo, ciudad ó región.
¿Es caro WiMax?
Implementar WiMax en una ciudad no lo es, requieres de un CPE Base Multipunto que permite radiar la señal de WiMax en toda la ciudad, dependiendo de la potencia del radio será la cobertura de la señal en algunos casos puede sobrepasar los 50 Km, requieres también PC Cards(para notebooks) WiMax para poder recibir la señal desde cualquier punto dónde andes, como si fuera un WiFi solo que en grande, obviamente los CPE Base y CPE Clientes aún no están a precios de risa como los router Linksys o 2Wire, pero para proyectos empresariales el precio ya es asequible y la inversión vale mucho la pena en comparación de rentar una red 3G.
¿ Que aplicaciones se le podrían dar a WiMax ?
Imagínate que desde tú notebook ó PDA pudieras ver las cámaras que tuvieras en tú casa en tiempo real y con alta definición sin pagar ninguna renta o uso de ancho de banda, imagina tener conversaciones de voz con tús amigos, tener una videoconferencia ó transmitir a todos tús contactos un videostream de lo que estás viendo, imagina que desde tú PDA pudieras controlas las luces de tu casa, apagar ó prender dispositivos eléctricos mediante una tecnología de domótica como X10, si eres dueño de una empresa, imagina que en cualquier parte de la calle estes haciendo ventas, tomando pedidos, consultando información de tu base de datos, realizando un inventario, estes llevando tú extensión telefónica vía voz sobre IP con el nuevo dispositivo de VoIP-WiMax y tener lo que es realmente una oficina virtual móvil..
¿ Porqué ayudaría WiMax a México ?
Porqué podría ser una forma económica y rápida de poder llevar las telecomunicaciones a los pueblos marginados de nuestro país y acercar la tecnología a los niños de los pueblos de México. Porqué a las empresas les permitiría llevar sus negocio hasta la puerta del cliente y así generar más movimientos y tener lo que realmente sería "movilidad empresarial", porqué aumentaría la innovación de los jóvenes al tener el conocimiento más cerca.
Definitivamente las aplicaciones de WiMax pueden ser muchas.
¿ Porqué WiMax aun no sé usa en México ?
Por desconocimiento de la tecnología.. también porqué la COFETEL aún no termina de revisar el protocolo, de definir que dispositivos pudieran ser permitidos para usarse en la frecuencia libre, entre otras cosas.. pero definitivamente por el costo No, pues un CPE Base está alrededor de los 1,500 dlls, y una PC Card alrededor de los 200 dlls.. en un inicio quizá sea algo caro pero se abaratarían sin duda estos costos cuándo el uso sea masivo, recuerdo hace unos 10 años cuándo el costo de un Access Point era de $ 1,000.00 dlls el más barato ahora los puedes conseguir hasta en $ 20.00 dólares.
¿ Ya hay productos WiMax disponibles en México ?
Si ya hay varios distribuidores de dispositivos WiMax como Canopy Wireless, MotoWi4, RedLine, solo basta que hagas una búsqueda en google sobre distribuidores de esta tecnología.
Pongo a continuación una entrevista que me envío y que realizó Gerardo Cabero del grupo SuperWaba de Argentina al creador del proyecto SuperWaba y ahora el renovado TotalCross hablo de Guillermo Campos Hazan.
Nota de Gerardo Cabero: Desde hace mucho tiempo queria entrevistar a Guillermo Campos Hazan , lider del los proyecto TotalCross y Superwaba, hace un par de dias tube la oportunidad de poder realizarle una entrevista. En ella nos cuenta que es TotalCross, cuales son los principales ventajas sobre Superwaba , y nos deja entrever cual fueron los impulsante para el nuevo cambio de modelo de negocio. En lo personal a sido muy gratificante haber podido entrevistar a Guich pueso que llevo muchos años trabajando con Superwaba ....Espero que la entrevista sea de sus agrado un Fuerte Abrazo a Todos
Gerardo Antonio Cabero Gerardo Cabero : @Nos podrias decir tu nombre ? Y como comenzaste en el mundo de las aplicaciones Moviles? ¿Como Nace Superwaba ? Guillerme C. Hazan: Mi nombre es Guilherme Campos Hazan. El apodo proviene de las iniciales del nombre de pila. La historia de como mi inicie con SuperWaba se puede leer aquí:
http://www.clubepda.com.br/SuperWaba1.htm Gerardo Cabero : @ Sabemos que dentro de poco des largar una nuevo SDK para el desarrollo Movil, pero hay mucha gente que no conoce el nuevo producto ¿Que es TotalCross ? Y cuales son Sus Ventajas ? y cual es la diferencias ante Superwaba ? Guillerme C. Hazan: SuperWaba procedia de otro proyecto de software libre. Lamentablemente, después de 7 años de software libre, llega a la conclusión de que el modelo de venta de suscripciones es insostenible: o bien mudabamos el modelo o cerrabamos las puertas. Sin embargo, incluso con permiso escrito del autor de WABA, el Rick Wild, a nuestro juicio, el deseo de cambiar el modelo.
Despues de haber realizado un master en PUC-Río de lenguajes de programación, el resultado de mi tesis fue la especificación utilizada en el desarrollo de TotalCross.
"TotalCross, portanto, nao é apenas um novo SDK, mas sim, principalmente, uma nova maquina virtual, codificada a partir do ZERO absoluto""
El TotalCross, por lo tanto, no es sólo un nuevo SDK, es sobre todo una nueva máquina virtual, fue codificada a partir de CERO, es decir, que "escribí la primera línea de código, sin mirar nada de la VM SuperWaba.". Se trato de un trabajo intenso que duró 2 años. Confieso que al día de hoy, ver todo el trabajo, ver que todo funcione bien, me hace sentir muy satisfecho, porque a veces pensé que no podía con el proyecto. En TotalCross han tratado de resolver todos los problemas que se sabía que existía en la máquina virtual de WABA, no sólo de funciones, sino también de ingeniería de software, la codificación, la división del código y así sucesivamente. Gerardo Cabero : @De manera corta y sencilla, cuáles son las ventajas de TotalCross antes de la SuperWaba? Guillerme C. Hazan: El TC resolverá todos los problemas que los usuarios tenían en SuperWaba. Todo es simple, completa y, sobre todo, robusto, no tolerar el fracaso. Gerardo Cabero : @ Con la inmiente lanzamiento de TotalCross, Como Afectara a la aplicaciones echas en Superwaba ? Existira Forma de Migrar la misma al nuevo soporte ? Guillerme C. Hazan: Hay una herramienta llamada tc.tools.SW2TC que convierte el 90% de los programas. El resto debe hacerse por el desarrollador Gerardo Cabero : @ Por que se eligio el nombre de TotalCross ? ¿Con que sorpresas nos econtraremos en el SDK De TotalCross ? Guillerme C. Hazan: TotalCross quiere decir: totalmente de desarrollo de plataforma cruzada. O bien, totalmente multiplataforma. Es seguro que el programa se ejecute sin modificaciones en todas las plataformas soportadas, siempre que este correctamente escrito, tal como se describe en la documentación. Gerardo Cabero : @ ¿Nos podrias comentar un poco sobre la nuevas caracterista de la VM y de
las Librerias incluidas en SDK? Guillerme C. Hazan: El VM es un "registro basado en máquina virtual", es decir, la opcodes son como si se tratara de un ensamblador de computadoras de hoy, en colaboración con los solicitantes de registro, y no en la pila como en Java. El. Clase Java se convierten en nuestros "ensamblador" durante Desplegar, todo muy rápidamente. Nuestro. Clase se comprimen, y la tabla de constantes (constante piscina) se reparte entre todos. Esto hace que la AP archivos de hasta 1 / 4 el tamaño original de Java.
En cuanto a la SDK, tiene todo lo que los usuarios siempre soñó. Puedo citar, por ejemplo, las clases de árbol, FileChooser, MultiListBox, serversocket, Registro (para acceder al Registro de Windows y Palm), Gráfico (skins, línea, columna), pizarra (para recoger firmas), Slider, ScrollContainer, Edit con máscara, Button con texto E imagen. Y multi-tareas Multihilos.
Uno de los principales cambios en TotalCross en relación con SuperWaba , no permita al desarrollor cometer cualquier tipo de error, se trata de despedir a una excepción. Esto es válido para parámetros no válidos, o de otros tipos de errores que pueden ocurrir en el SDK, o el nativo de la biblioteca.. Asi tambien todas las clases están empaquetados en un único archivo, TCBase.tcz, que se encuentra actualmente en 310Kb (en SuperWaba, que más o menos 1 M. Gerardo Cabero : @ ¿Qué nivel de dificultad tiene el SDK, como si la parte que gestiona los gráficos? ¿Cuáles son los nuevos dipositvos que soportaran? Guillerme C. Hazan: Hemos intentado hacer coincidir los nombres estándar de Java, y también corregir los nombres de las clases y métodos. Para un usuario SuperWaba, puede dar una buena lectura a la documentacion (que está siendo reescrito), identificar las nuevas clases y nuevas características de las clases mayores. Es esperctacular
La parte gráfica fue también completamente reescrita, ahora se emula correctamente los gráficos de las resoluciones de 8, 16, 24 y 32 bpp en los distintos dispositivos. Un color, que anteriormente era designado por la clase color, ahora sólo es un int, que mantiene el color en el RRGGBB. La clase color es ahora sólo una clase con herramientas útiles tales como la oscuridad, más brillante, y así sucesivamente.
La clase imagen sólo admite archivos JPEG PNG y en el dispositivo, y PNG, JPEG, BMP (ahora con 24bpp) y GIF en el escritorio. En el momento de desplegar, el BMP y GIF se convierten automáticamente a PNG. Para el desarrollador, es todo transparente. Por lo tanto, por la práctica "new imagen (" imagen.gif ")," este archivo se convertirá a desplegar en PNG y el momento de leer vm "imagen.gif" en el dispositivo, que ya se ha cargado correctamente la "imagem.png" convertidos. Es decir que no es necesario realizar mezclas extrañas de codigo. Los Gif seran correctametne traducidos .
Por último, las fuentes de caracteres están ahora con las esquinas redondeadas (antialiasing), lo que los hace mucho más hermoso la aplicacion en el dispositivo. Debido a que, también, las pantallas ya hechas al SuperWaba debe "mover un poco" cuando se cargan en TotalCross. La fuente predeterminada es ahora utilizado para Tahoma, que tiene una ancho un poco más cerca de las antiguas fuentes de SuperWaba (es decir, es ahora cosa más en la pantalla). Otra innovación importante es el apoyo de diversos tamaños de fuentes, el 8-22, normal y en negrita. Así, usted puede cambiar el tamaño de la voluntad en los programas.
El TotalCross trabaja sobre Palm OS, Windows CE (2.x-6.x), BlackBerry y iPhone. Queremos portalo para Symbian y Android (a inicios) en 2009. Gerardo Cabero : @ ¿Cuántos desarrolladores estarán involucrados en la creación de TotalCross? ¿Cual fue la parte mas complicacada durante el desarrollo del SDK? Guillerme C. Hazan: Durante la fase más crítica, fuimos 7 personas. Actualmente, somos 4. Creemos que con la puesta en marcha, podemos aumentar el equipo de nuevo. Lo más difícil fue la creación de threads preemptivas. Incluso pense en dejarlo. En última instancia, la solución es terriblemente simple: un soporte a los therard en mentodos de 30 líneas de código para cada plataforma.Un soporte para la concurrencia, también generó un gran dolor de cabeza el recolector de basura, el cual tuvo que ser cambiado alrededor de 6 veces hasta que paso todas las condiciones de los entornos. Gerardo Cabero : @ Para los que no conocen ¿Que es LiteBase ?, ¿Funciona de la misma forma de PDBdriver ? ¿o es una evolucion del mismo? Guillerme C. Hazan: El Litebase 1.x ya está en el mercado tiene 2 años. La diferencia en la version 2.0 ahora soporta joins simples, de palabras compuestas, blob y varchar (en realidad, todos los caracteres son ahora varchar). Sin embargo, se ha utilizado al rededor de 4 meses para liberar un prodcuto más estable. Ahora, por ejemplo, "antes era posible corromper a un índice" (esto ocurre cuando no hay registro o memoria ),
pero ahora se advierte al usuario atravez de un una excepción para el cual reconstrulle el índice cuando se reinicia la aplicación. Con esto la base de datos no sera dañada en ningun modo, solo a ser que el dipositivo tenga una falla de hardware. Gerardo Cabero : @ ¿Desde el punto de vista comercial, cual es razón por la que optar por cambiar el Modelo de negocio? y la forma de distribución de la máquina virtual? ¿Cuál será el precio de la máquina virtual? Guillerme C. Hazan: El modelo de suscripción anual, aprobado en 2005 no se conviertan en lo posible, por dos razones. La primera de ellas, la mayoría de los usuarios que compraron un abono sólo una vez. La segunda, que una empresa como Itaipu Binacional paga lo mismo que José, propietario de una pescaderia en una esquina . En otras palabras, no era posible crecer como empresa. si no se cambiaba de modelo, o se deberían de cerras las puertas, puesto que ese modelo era solvéntale. Los que discrepan, que abran un negocio y traten de sobrevivir en las suscripciones; va invariablemente a morir de hambre (Traducción Adaptada) "Quem discordar disso, que abra uma empresa e tente viver de subscricoes; vai invariavelmente morrer de fome."
Ahora, el SDK se distribuirá gratuitamente en forma plena (con todas las características), y el usuario tendrá la licencia vm sólo cuando el producto se pone en producción. El vm se cargará el PDA. El cliente compra un nr x licencias, y cada vez que un VM se instala en un nuevo PDA, debe estar habilitado en nuestro servidor. El PDA luego recibir un archivo de activación. Este archivo sólo será válida para una pda. Si al sufrir el pda un Had-reset, puede ser reactivado de forma gratuita, o copiando de nuevo el archivo para la PDA, que es el acceso a nuestro servidor. El SDK es vm acompaña a la versión de prueba, que aparece en una popup y también está limitado por el tiempo (80 horas de uso). Después de esto, usted puede hacer una hard-resert en el dispositivo y ejecutar otro 80 horas, esto es permitido por nosotros, sin violación de la licencia.
Para las grandes empresas (más de 10.000 dispositivos), donde existe un sistema de dispositivos de control de auditoría externa, podemos eliminar la fase de activación, y todas regidas por contrato. Gerardo Cabero : @ Uno de los principales problemas que hemos tenido con SuperWaba, es el
la falta de capacitación y certificación en español, en este nuevo giro de 360 Grados, que está dando el proyecto incorporarán ¿Si el sistema de formación y Certificación? Guillerme C. Hazan: Esperamos poner en el aire una WEB de formación en línea durante 2009. y Un programa de la certificación , es un paso natural a segir. Gerardo Cabero : @ ¿Cual es la Fecha mas proxima de lanzamiento del SDK TotalCross? Guillerme C. Hazan: Tal vez la 2 ª semana de enero, la más probable es la 3 ª semana de enero de 2009. Gerardo Cabero : @ Una pregunta a Futuro, ¿Es Posible que en algún momento un SDK TotalCross comunitario o Lite, tal como exite Superwaba comunitaria? Guillerme C. Hazan: El SDK es total y completamente libre. La diferencia ahora es la vm. Cuando alguien es la concesión de licencias del producto, que gana sólo nuevos VMS, y no un nuevo SDK. El SDK es el mismo que antes. Gerardo Cabero : @ ¿Como vez el futuro de TotalCross frente al J2me , Android ? Cuales son
los Obstaculos por vencer a corto plazo? Guillerme C. Hazan: El problema no es Android, el TotalCross será portado a él. En cuanto a la JME, ellos tienen la api, y nostros tenemos la nuestra. El mercado es muy grande, hay espacio para todos. Gerardo Cabero : @ Hablemos un poco de la comunidad, papel de la comunidad latinoamericana hacer contribuciones a los proyectos SuperWaba y / o TotalCross? Y como Argentina se posiciona frente al resto de los países de los países de habla hispana? Guillerme C. Hazan: Bueno, ya que al cambiar el modelo de negocio en 2005, la comunidad casi a desaparecido. Todas las contribuciones han cesado. Esperamos que con este nuevo modelo la comunidad a de resurgir. Tenemos también un gran interés en el fomento de asociaciones con universidades, de modo que los estudiantes se formen en las nuevas tecnologías. Gerardo Cabero : Finalmente me gusta el agradecerte que Allas dado un poco de usted tiempo para impugnar un par de preguntas, que en este último sabemos ocupado el período demasiado francamente creo que agradecemos Para Finalizar algunas palabras para la Comunidad de Superwaba Argentina y SuperWaba - Latino ... Guillerme C. Hazan: Tratar de corregir los errores del pasado con nuestro nuevo producto. Espero que la gente entienda que somos una empresa y no un Zen comunidad que vive la base de Santo Daime Cha. Todo el esfuerzo de organizar una nueva máquina virtual de costo miles de horas de arduo trabajo, la privación de los fines de semana, vacaciones, y el estar con la familia. Nuestro objetivo es entregar a la comunidad y un sólido producto que permite a la gente entrar en el mundo de la tecnologia movil se más agradable posible.
Quiero hacer un llamado a la comunidad, una vez más, a contribuir con el proyecto. Las clases son de código abierto y estan escritas en el lenjuge Java, por lo que siempre es posible mejorar lo que se hace. No se olvide de leer todo lo que está escrito en www.totalcross.com
La fotografía se ha vuelto uno de mis hobbies en los últimos meses, pero debido a la crisis no he querido invertir por ahora mucho dinero en una buena cámara semiprofesional como las Canon XSI, pues están arriba de $ 10,000.00 y ya no se diga de buenos lentes para Macros, Telefotos, Gran Angulares entre otros que el costo de cada una sería lamitad de la cámara que simplemente por ahora sería incosteable.
Por lo que he decidido continuar con mi camarita Fujifilm S5600 que me ha salido bastante bien y no me puedo quejar de su lente aunque muy básico pero me ha ayudado a capturar algunas imágenes que he compartido a traves de mi Flickr
Pero no conforme con el lente que trae he buscado información si se le puede puede colocar un lente como tal, pero no es tan fácil ya que el lente de la fujifilm S5600 no es desmontable pues ya viene fijo dentro de la cámara, pero buscando en internet encontré la página de Raynox quienes fabrican lentes adaptables a cámaras como la mía de tal forma que es posible tener super gran angulares, macros, telefotos, etc sin gastar tantos pavos, por lo que en una parte de su página hay un apartado para mi fujifilm S5600 http://www.raynox.co.jp/english/digital/s5600/index.htm y viendo las fotos que se toman con estos lentes simplemente me han dado ganas de tomar mi tarjeta de crédito, entrar a ebay y vía merkalink traerme estos lentecitos hasta la puerta de mi casa para próximas salidas flickeras..
Por ahora le he echado un ojo al lente CDR-5000
El cuál es un lente Super gran angular y que por solo 110 pavos incluyedo el anillo adaptador para la fuji ya se pueden tener esos gran angulares que suelen ser espectaculares, tal como se ve en esta foto que usa el lente raynox mencionado con la fuji s5600
Fotografiada tomada por MANTOVA en flickr
Otro de los lentes que me está llamando la atención es el modelo DCR-250 que es un lente para tomar macros que por 54 de los verdes pueden tomarse tomas como la siguiente..
Fotografiada tomada por Dark Score en flickr
Sin duda que por ahora tomaré estas 2 opciones que me resultan mucho muy atractivas.. se me hacen agua las manos y los ojos de presionar y capturar imágenes con estos lentes..
Total Cross es un entorno de desarrollo para dispositivos móviles tales como WindowsCE, WindowsMobile, PocketPC, PalmOS, BlackBerry, Symbian y próximamente Android e iPhone. Su antecesor SuperWaba tenía una versión libre para la comunidad por lo que imagino que TotalCross seguirá con esta filosofía, algo que interesante a TotalCross es LiteBase que es una parte propietaria del proyecto pero que permite integrar bases de datos empotradas al código mediante sentencias SQL, lo que amplia su potencial de TotalCross, aparte que TC está rediseñado desde cero con respecto a su antecesor SuperWaba.
Auguro mucho éxito para TotalCross más con la venida de nuevas tecnologías móviles. Se anuncia que para mediados de enero del 2009 ya estará disponible un release de TotalCross asi que creo que valdrá la pena repasar esta tecnología y ver si es posible sacar provecho de ella,
Trabajando con un proyecto personal que trata de integrar varias tecnologías para poder crear un dispositivo de control automático casero he estado buscando la forma de poder incorporar distintos dispositivos bluetooth con Linux para tener controles remotos desde un celular por ejemplo,para envío de SMS y para hacer llamadas con Asterisk usando como gateway un teléfono móvil vía bluetooth.
Para ello posteo esta información que trata sobre la conexión de un dispositivo bluetooth y como enviar archivos desde una línea de comandos.
Para empezar estoy probando con un bluetooth usb dongle el cuál al conectarlo al puerto USB usando el comando dmesg me regresa lo siguiente:
[487.392000] usb 3-2: new full speed USB device using uhci_hcd and address 2 [487.564000] usb 3-2: configuration #1 chosen from 1 choice [487.720000] Bluetooth: HCI USB driver ver 2.9 [487.760000] usbcore: registered new interface driver hci_usb
Lo que indica que el dispositivo usb fué detectado correctamente.
si la detección fué correcta podemos ver la MAC Address del dispositivo con el siguiente comando:
phylevn@PhylevnMobile:~$ hcitool dev
Devices:
hci0 00:11:55:87:27:7F
Posteriormente podemos hacer una busqueda para saber que dispositivos remotos se encuentran cerca con el siguiente comando:
phylevn@PhylevnMobile:~$ hcitool scan
Scanning ...
00:1D:3B:23:FA:BE www.phylevn.com
00:21:47:C3:C9:75 Nintendo RVL-CNT-01
Despues de eso para poder enviar un archivo a un teléfono celular por ejemplo primero debemos conectarnos con el dispositivo mediante el siguiente comando:
phylevn@PhylevnMobile:~$ sudo rfcomm connect 0 00:1D:3B:23:FA:BE 9
Connected /dev/rfcomm0 to 00:1D:3B:23:FA:BE on channel 9
Press CTRL-C for hangup
Con esto nos conectaremos al dispositivo y nuestro teléfono celular pedirá una confirmación de conexión remota, es necesario que se acepte para que se pueda enviar datos desde la PC al móvil.
Para poder enviar un archivo solo se requiere ejecutar el siguien comando:
phylevn@PhylevnMobile:~$ sudo ussp-push /dev/rfcomm0 ./mensaje.txt mensaje.txt name=./mensaje.txt, size=191
Connection established
Con este mismo comando se pueden enviar imagenes, aplicaciones, textos, etc..
Existe un programa interesante llamado bluezSpammer el cuál permite enviar archivos a dispositivos bluetooth sin pedir autorización pues aprovecha una vulnerabilidad del stack del protocolo bluetooth, por lo que se salta el paso de la autorización de la conexión enviando directamente el archivo al dispositivos remoto..
Hace ya más de 5 años que he usado SuperWaba para el desarrollo de aplicaciones móviles, aunque en la actualidad no tengo algún desarrollo en producción con esta tecnología, ya que a pesar de las grandes ventajas de SuperWaba aun faltan algunas cosas que han hecho que dejé a un lado esta tecnología. SuperWaba es un framework con licencia GPL y LGPL para desarrollo de aplicaciones móviles, SuperWaba se puede decir que está basado en Java, más no es Java como tal si no es prácticamente una máquina virtual desarrollada desde 0 ajena a Java y la cuál puede ejecutarse en Windows Mobile, Windows CE, PalmOS, Symbian OS, Windows, Linux y como Applet.
Actualmente se encuentra en su versión 5.8, aunque desde el año pasado ya habían anunciado que no continuarían más con su desarrollo ya que se avocarían a rediseñar desde cero una nueva plataforma que saldría con el nombre de TotalCross.
Hace un mes salió el primer beta de TotalCross, una plataforma que promete mucho, la cuál entre sus características es soporte para las plataformas actuales de Superwaba incluyéndole además iPhone de Apple, los BlackBerry y en un futuro Android.
La ventaja de estas tecnologías es que tienen la característica de "Escribe una vez y córrelo dónde quieras", aparte del soporte de su propia base de datos Litebase que aunque no es libre, si permite hacer consultas SQL.
TotalCross ha lanzado un beta para los socios de SuperWaba, pero no dudo que ya próximamente anuncien la versión para la comunidad de Software Libre.
Hace unos días estando en Lerdo de Tejada, Veracruz -lugar dónde hacen un arroz a la tumbada muy sabroso-, un amigo me preguntó si conocía de algunos equipos que sirvieran como repetidores inalámbricos, es decir ellos tienen una conexión de intenet de 4 mbps y la querían compartir con varios amigos que están extendidos a los largo de la población, lo que se me ocurrió comentarles rápidamente en base a mi experiencia es que adquirieran Access Points que sirvieran como bridges y que al mismo tiempo pudiera funcinar en modo AP.
Hace tiempo trabajando en una empresa conocí alguno de estos equipos y me tocó configurarlos, los llamados Wireless Switchs, los cuáles tienen Access Ports en vez de Access Points y la configuración es centralizada, estos Access Ports entre sus características es que pueden configurarseles varios ESSID, si no mal recuerdo tenían la opción de meterles hasta 4 ESSID en algunos lo que permitia hacer repetidores inalámbricos, lo malo solo era el costo pues una solución de esta no costaba en ese entonces menos de $ 1,000.00 dólares.
Por lo que una solución como la mencionada anteriormente no era viable para estos amigos que querían realizar una función plenamente con fines de entretenimiento, por lo que regresando aqui a México, D.F., saque un router WRT54G que tenía por ahí empolvándose, previamente ya le había metido el firmware de DD-WRT, la versión 0.23 que salió hace más de un par de años, pero desde entonces no había actualizado el firmware en este equipo, por lo que dándome una vuelta en el sitio de DD-WRT vi que ya tienen la versión 0.24 con su Service Pack 1, por lo que ni tardo ni perezoso la bajé para instalársela.
Antes ya había tenido conocimiento de Redes MESH y WDS(Wireless Distribution System), pero no lo había llevado a la práctica, por lo que despues de bajar la versión 0.24 de DD-WRT pude ver que el AP WRT54G en la configuración del Wireless ya permite trabajar en modo repetidor y modo bridge, por lo que quise hacer una prueba la cuál consiste en lo siguiente:
Conectar el router Linksys en modo repetidor a un Access Point 2Wire Infinitum que está en alguna parte del edificio dónde vivo.
Aqui es importante usar el mismo ESSID, Canal y llave WEP ó WPA que tiene el Access Point "padre" por así decirlo, de forma que hay que conectar el WRT54G como cualquier cliente inalámbrico con la salvedad que en la configuración hay que decirle que está trabajando en modo repeater bridge y no en modo AP o Cliente(ver figura de abajo).
Posteriormente agregar una interfaz virtual inalámbrica en el Router, esto hará que se vea un AP más al gestionar las redes inalámbricas y de ahí poder conectarnos.
Despues solo basta ir a la parte de Wireless->Wireless Security->Virtual Interfaces wl0.1 SSID [phylevn.mexrom.net]
Para poder configurar la parte de seguridad de la red inalámbrica.
Ya que quede todo esto hay que guardar las configuraciones y aplicarlas.
Despues solo ir a la parte de Status y ver como está la parte inalámbrica ahí debería verse como el WRT54G se conecta en este caso al 2Wire Infinitum y también como un cliente se conecta a la interfaz virtual del WRT54G que trabaja en modo AP.
Configuración del WRT54G en modo repetidor y también configurando la interfaz virtual del WRT54G.
Gestionando las conexiones realizadas por el WRT54G, en este caso ya conectado al 2Wire Infinitum y también se observa como un cliente se conectó a la red inalámbrica phylevn.mexrom.net que es la interfaz virtual del WRT54G.
Lo interesante de todo esto es que se realiza en un par de minutos, sin gastar tantos pavos que con soluciones propietarias como las de Symbol Technologies ahora Motorola.
Solo resta agradecerle a la comunidad de desarrollo de DD-WRT y al Open Source en general por permitir esto y muchas cosas más.
Llevo un par de meses integrando en un servidor Linux múltiples herramientas multimedia libres para la creación de un Centro Multimedia con capacidades domóticas.
Entre las que he probado y de la que hablare ahora es de Motion. Motion Es una utilería desarrollado bajo una licencia libre que permite detectar movimientos en cámaras web usando video4linux como interfaz para conexión con Dispositivos de Video en linux tales como cámaras web.
Lo interesante de Motion es que permite usar cualquier Cámara Web compatible con Linux para hacer VideoStreaming esto indica que podemos ver la cámara web a traves de una página web, por lo que monitorear la cámara se puede hacer desde cualquier parte del mundo siempre y cuándo la computadora dónde esta conectada la cámara estuviera conectada a una IP Homolagada, pero lo mejor de Motion es que permite configurarse para que cuándo detecte movimiento capture las imágenes y las guarde en un directorio en formato Jpeg, por lo que su uso se extiende aun más para lo que es VideoVigilancia.
Por default Motion corre en modo aplicación, pero puede configurarse desde su archivo de configuración que está en /etc/motion/motion.conf para que corra en modo demonio por lo que siempre estará corriendo en background.
Motion por default abre el puerto 8000 para que desde otras partes vía una página web se pueda monitorear la cámara web siempre y cuándo la opción de webcam_localhost esté en off, el puerto también es posible configurarlo.
Algo que me llamó mucho la atención de Motion es que es muy configurable a traves de /etc/motion/motion.conf, en dónde leyendo mediante man la documentación me entero de que tiene un trigger on_event_start que permite ejecutar alguna aplicación al momento de detectar movimientos, de tal forma que aqui solo basta usar la imaginación para poder hacer algo interesante tal como es por ejemplo mendiante Asterisk alertar con una llamada telefónica a personal de seguridad de un movimiento detectado.
También algo que me agradó de TextMotion es que guarda imágenes cuándo se detecta movimiento, asi como también tiene la opción de grabar un video de cuándo se detecta el movimiento y mejor aún de mostrar el área dónde se está registrando el movimiento..
Tambien es posible configurar el número de frames necesarios parapoder considerar un evento de movimiento.
Aquí pongo la configuración que uso para usar Motion como un detector de movimiento, con esta configuración guardo videos en formato avi con el codec msmpeg en el directorio default /var/lib/motion/snapshots y también desactivo la opción de que genere archivos JPG o PNG de movimiento, configuro a Motion para que muestre el video usando una calidad de 320x240 por cuestiones de rendimiento y ejecutando al momento de que se detecte un movimiento un script en PHP que es un Agi de asterisk que me permite marcar a una extensión telefónica.
# Minimal motion example config file provided by the # Debian motion package - for basic webcam operation. # # You most certainly want to investigate # /usr/share/doc/motion/examples/motion-dist.conf.gz # for further configuration options. Also, refer to the # motion man page and /usr/share/doc/motion/motion_guide.html # for detailed information on configuration options.
daemon off
quiet on # You may very well need to change this (check with 'dmesg' # after plugging in your webcam).
videodevice /dev/video0 # Image size in pixels (valid range is camera dependent). #Si se tiene una cámara que soporte mayor calidad como por ejemplo 640x480 entonces cambiar los valores, por cuestiones de rendimiento he dejado los valores por default aqui
width 320
height 240
framerate 25 #calidad con que guardará las imágenes JPEG, en cuestiones de seguridad a veces es bueno darle un 100% asi se tendrá una imagen más tínida, aunque esto requerirá mayores espacios
quality 75
auto_brightness off # General threshold level and noise threshold # level (for distinguishing between noise and motion).
threshold 4500
noise_level 64 # Initial brightness, contrast, hue (NTSC), and saturation. # 0 = disabled (valid range 0-255).
brightness 0
contrast 0
saturation 0
hue 0 # Encode movies in real-time (install ffmpeg before enabling). #default ffmpeg_cap_new off #ffmpeg_cap_new off #Habilitar esta opción para grabar videos cuándo haya movimiento
ffmpeg_cap_new on # Codec to be used by ffmpeg for the video compression. # Supported formats: mpeg4, msmpeg4. #se configura el codec a usar
ffmpeg_video_codec msmpeg4 # Target base directory for pictures and films (you may need # to change this (or change its permissions) depending on # which system user runs motion).
target_dir /var/lib/motion/snapshots # Define a port number (e.g. 8000) to enable the mini-http server. # 0 = disabled.
webcam_port 8000 # Set to 'off' to allow anybody (not just localhost) to view the # webcam via the mini-http server (http://hostname<img src="plugins/Emoticons/images/tongue.png" border="0" alt="tongue.png " width="16" height="16" />ort). #webcam_localhost on
webcam_localhost off
webcam_quality 70
webcam_maxrate 8 #Configuracion personalizada #Puerto para entrar a la configuracion
control_port 8001 #Usuario y password para acceder a la configuracion
control_authentication motion:m0t10n #Numero de frames requeridos para poder lanzar el evento de movimiento #minimum_motion_frames 10 #Comando que se ejecuta al detectarse movimiento
on_event_start "php -q /var/lib/asterisk/agi-bin/makeCallwithAsterisk.php" #Esta opcion siempre generaria imagenes cada cierto tiempo aunque no haya movimiento #output_all on #Muestra la región donde se localiza el movimiento locate on #muestra un texto en la esquina inferior izquierda
text_left "phylevn.mexrom.net" #aumenta el tamano del texto
text_double on #se asegura de que haya movimiento
roundrobin_skip 2 #desactivamos la opción de que guarde archivos de imágenes
output_normal off #indicamos que guarde los archivos en formato NTSC para el caso de Mexico
norm 1
Existen otras aplicaciones para monitoreo de cámaras tales como webcam-server, pero a mi gusto Motion por mucho se lleva las palmas.
Para mis prubeas he usado una cámara web Creative Live! Cam, la cuál adquirí por $ 180 pesos en la plaza de la computación.
Para poder conectar esta cámara en Ubuntu Linux 7.10, use el driver ov51x-jpeg-1.5.9. Es posible usar la cámara también para el AMSN y otros programas que hagan uso de Video4Linux.
Comentarios Recientes