Hagamos que México crezca..

Prefiere el consumo de lo Hecho en México

Visitantes








Conversación

  • melvin: el mejor vpn es vpn ninja, su sitio es www.vpnnija.com  
  • effeselop: High-heeled shoes n your case, a jimmy choo nova nude slingback shoes girl that are how one prevent stop the terrible! The very thought of these disadvantages, high heel sandals after which it check out this new ladies, how suddenly it had not been so pretty! Pure while burden of check carefully the jimmy choo strappy sandals storage room, spring, summer, the fall and winter shoes, I only identify one pair a little high-heeled sandals, exclusion . Irrrve never worn high heel slides in one time, huh, huh! Today it is easy to understand shoe store favorite jimmy choo wedge women's high heel sandals, beautifully turned to that, believe that of to place it on, wind willow waist put a person unique on top of the swaying grace, the temptation fails to stop  
  • Samantha Santin: ola me pueden ayudar con lo basico para un examen de linux , estoy en 10 mo de basica , por favor , gracias  
  • alexandra: hola...tengo problemas para configurar las llamadas y crear los troncales....uso elastix 2.0.3 con asterisk 1.6...y soy nueva en esto..puedo relizar llamadas dentro de una misma oficina, pero no puedo sacarlas fuera, es decir locales e internacionales...necesito asesoria...gracias  
  • Fernando Hernández: Hey! Ya no estan disponibles los posts sobre facturación electrónica en México, podrías pasarme el tutorial o la clase en php? Por favoooor. Gracias  
  • daniel nuñez: buenas soy de venezuela y tengo una duda yo lo que quiero es hacer una iso debian que tenga todos los paquetes necesarios completos y programas como synaptis fortran java los pluging de video y sonido ya instalados osea que tenga todo lo necesario instalado pero sin que sea una instalacion con un cd netinst, es posible ?  
  • Cesar villegas: Buenas!!! oye no tienes programado algún curso?  
  • Urbano: Hola soy de Argentina.
    Desde hace un tiempo tengo instaldo Asterbilling SL y me parece un rpoyecto útil e interesante. Ahora me compré un AT 530 con la intension de pasar la tarifa al telefono pero seguramente algo estoy haciendo mal ya que despues de configurar el script con los datos del AMI; MySQL y ejecutar el comando que indica el manual.. no pasa nada, todo sigue igual y no se muestra la tarifa en la pantalla del telefono. Tal vez deba configurar algo tambien en el telefono.. la verdad no se, es que tampoco soy un experto en la materia. Les dejo algunos datos que talvez sean utilespara que me puedan ayudar: Tengo Elastíx 2.0.3 con Asterisk 1.6; FreePBX 2.7.0.3; A2Billing 1.8.1; Astercc 1.4 y Asterbilling SL. Espero que me puedan ayudar; desde ya muchas gracias.  
  • kike: Oye filein.. necesito una cotización de unas FxO para analógicas porfa..
    saludos  
  • cristy: hola por favor tengo problemas para conectar agi con asterisk me sale un error de broken pipe, sabes de que se trata???  

Escribe el código Captcha que estás viendo

Dispositivos Móviles

  • Probando el SDK de la nueva plataforma de Google para dispositivos moviles Android

    El pasado fin de semana me dió curiosidad conocer la nueva plataforma de Google para móviles denominada Android, por lo que me puse a investigar un poco sobre de que se trata tal plataforma, por lo que solo basto poner la palabra Android en la busqueda de google para encontrar la url del proyecto, el cuál está en la siguiente Url:
    http://code.google.com/android/
    Despues de conocer un poco más sobre la plataforma, bajé el SDK el cuál puede obtenerse de la siguiente dirección web:
    http://code.google.com/android/download.html
    En este caso bajé la versión para Linux, la cuál solo en tar.gz con lo necesario para probar.
    También se requiere la nueva versión de Eclipse, al igual que el SDK de Java la versión 1.5 o superior, en este caso tenía instalado previamente la versión 1.4 de Java al igual que Eclipse 3.1 ya que lo utilizo para algunos desarrollos con SuperWaba y PHP, pero por los requerimientos descargué las nuevas versiones de Java 1.5 así como también de Eclipse 3.3 denominado Europa.
    Lo interesante de Linux es que puedes tener diferentes versiones de Java y Eclipse instaladas, y solo puedes cambiar el entorno a usar mediante un script dónde definas las variables de entorno para JAVA_HOME, JAVA_PATH, JRE_HOME y JRE_PATH así como definir en el PATH principal el directorio de eclipse y java/bin.
    Despues de eso solo hay que bajar el plugin de Android para eclipse el cuál solo basta agregar al directorio de nuevas actualizaciones e instalaciones en Eclipse:
    https://dl-ssl.google.com/android/eclipse/
    Puede verse todo el proceso de instalación del SDK en esta url:
    http://code.google.com/android/intro/installing.html
    Despues de tener todo listo, solo hay que iniciar un nuevo proyecto Android, por lo cuál crea por default todo lo necesario, incluso crea el esquema inicial de un desarrollo para android, que muestra el clásico Hello World, que al ejecutarlo en Eclipse, este inicia el Emulador de Android, que es un emulador de un teléfono móvil y ahí ejecuta la aplicación desarrollada.
    El SDK de Android también trae otras aplicaciones demo que pueden abrirse desde Eclipse, estas son muy prácticas para entender el funcionamiento de la plataforma y desarrollo de Android, así como también su ejecución.
    Por lo mientras es todo lo que puedo comentar sobre Android, pero seguro que iré conociendo más de esta plataforma, que me parece que es una plataforma que le falta todavía desarrollo, pero que sin duda es muy interesante el propósito de Google y otras compañías, con la cuál se podrán realizar bastantes proyectos.
  • Como instalar Linux Familiar 8.4 con OPIE como entorno de escritorio en iPaq RX3715

    Hace un par de años que vengo haciendo pruebas con Linux Familiar en mi HP iPaq RX3715, de hecho en el 2006 fui al ENLi en la UPAEP a dar una platica de como instalar Linux en una PDA y al final me hicieron una entrevista para el Sol de Puebla sobre las tendencias de los dispositivos móviles con respecto a Linux.
    En ese tiempo Linux Familiar andaba la version 8.2 de Familiar Linux aun estaba en fase beta si no mal recuerdo, ahora en estos días Linux Familiar ya está en la versión estable 8.4 y caminando, de hecho al parecer ya es posible usar QTopia sobre Linux Familiar, ya que en la página de TrollTech ya está el codigo fuente disponible para compilar y usarlo junto con Linux Familiar.
    Actualmente la instalación de Familiar Linux es mucho más fácil, solo es recomendable tener una tarjeta SD Card, es recomendable que no sea de más de 1 GB, si así fuera habría que particionarla.
    Particionando tarjeta SD Card

    Se recomienda usar un convertidor de SD Card a USB, su valor en la plaza de la computacion aqui en la Ciudad de México no es mas de $ 10.00 Dlls, recomiendo usar un convertidor USB ya que aunque en mi laptop reconoce la tarjeta SD Card desde la ranura SD, con qtparted y el convertidor usb que la sd card es mucho más fácil hacer la partición, de lo contrario hacerlo con fdisk es un poco más complicado y menos práctico para un usuario novel en Linux, aparte que QTParted tiene una interfaz gráfica que simplifica el trabajo.
    Despues de conectar el convertidor USB con la tarjeta SD, iniciar qtparted, si no se tiene esta utilería basta hacer sudo apt-get install qtparted para instalarlo en Linux.
    Automáticamente qtparted reconocerá el disco USB, generalmente lo detecta como /dev/sdb, después
    desde qtparted borrar la partición del disco usb y crear nuevamente 2 particiones, si es una tarjeta de 2 GB se recomienda que se cree primero una partición ext2 de 1024 MB y el resto con una partición FAT32.
    Al terminar de crear las particiones y aplicar los cambios en qtparted, KDE abrirá en 2 ventanas las particiones creadas, en caso de que no ir al directorio /media con Konqueror y abrir los directorios disk y disk-1.
    Generalmente /media/disk es para la partición de ext2 y /media/disk-1 es para la partición FAT32 creada
    Obtención de Archivos

    Después de crear las particiones descargar los siguientes archivos:
  • BootLoader

    http://www.w-ww.org/~rmoravcik/rx3000/haret/haret-pre-0.4.9-20070620_152948.exe
  • Configuración del bootloader

    http://www.w-ww.org/~rmoravcik/rx3000/haret/default.txt
  • zImage

    http://www.w-ww.org/~rmoravcik/rx3000/kernel/zImage-2.6.21-hh9-1
  • Opie File System

    http://www.w-ww.org/~rmoravcik/rx3000/rootfs/Angstrom-opie-image-glibc-test-20070620-rx3000.rootfs.tar.bz2
  • Modulos para WiFi

    http://www.w-ww.org/~rmoravcik/rx3000/kernel/modules-2.6.21-hh9.tar.bz2
    Instalacion de Archivos

    Despues de la descarga se obtendrán los siguientes archivos:
    Archivos en la partición FAT 32
  • haret-pre-0.4.9-20070620_152948.exe: renombrar a haret.exe
  • modules-2.6.21-hh9.tar.bz2: Modulos para activar el módulo WiFi en la Terminal Portátil
  • default.txt: Editar este archivo y en la siguiente línea
    set CMDLINE "root=/dev/mmcblk0p2 rootdelay=3 psplash=false"
    cambiar a
    set CMDLINE "root=/dev/mmcblk0p1 rootdelay=3 psplash=false"
    Esto va a indicar que el sistema de archivos se encontrará en la partición ext2 y no en fat32
  • zImage-2.6.21-hh9-1: Renombrar este archivo a zImage, este archivo es la imagen del kernel que se cargará en la terminal portátil.
    Archivos en la partición Ext2

    Acceder a la partición ext2 de la SD Card vía consola
    desde ahí descomprimir el archivo Angstrom-opie-image-glibc-test-20070620-rx3000.rootfs.tar.bz2
    cd /media/disk
    sudo tar -xjvf /home/phylevn/software/familiar/Angstrom-opie-image-glibc-test-20070620-rx3000.rootfs.tar.bz2
     
    El anterior comando lo que hará es obtener el sistema de archivos para Familiar Linux en la partición Ext2
    Iniciando Linux

    Despues de hacer el copiado correcto de los archivos, desmotar las particiones e instalar la tarjeta SD en la PDA.
  • Desde el directorio de la SD en la PDA ejecutar el archivo haret.exe, si todo sale bien empezará a ejecutarse Linux.
  • Si el copiado del sistema de archivos en la partición ext2 de la SD Card salió bien despues de unos segundos se vería el inicio de la interfaz gráfica de Opie
  • A continuación solo alinear la pantalla y posteriormente realizar la configuración regional.
    Conectando a la red vía USB
  • Despues de acceder a OPIE, ir a la pestaña de Settings y configurar ahi los parámetros de red a usar, en este caso como demo he usado la siguiente:
    IP: 192.168.10.2, Netmask:255.255.255.0, Gateway:192.168.10.1, DNS:Configurar los propios
    Despues de configurar la IP en la PDA desde la utilería, reiniciar el demonio de red desde la consola
    sudo /etc/init.d/network restart
     
  • En la PC editar un script con los siguientes parámetros:
    echo 1 > /proc/sys/net/ipv4/ip_forward
    sudo ifconfig usb0 192.168.10.1 netmask 255.255.255.0
    sudo iptables -F
    sudo iptables -X
    sudo iptables -Z
    sudo iptables -t nat -F
    sudo iptables -t nat -A POSTROUTING -s 192.168.10.0/25 -d 0.0.0.0/0 -j MASQUERADE
    sudo iptables -A INPUT -p TCP -m state --state RELATED -j ACCEPT
     
    Con estos parámetros configurar la conexión USB y al mismo tiempo habilitamos el ruteo para que la PDA pueda conectarse a internet usando la conexión USB.

    La imagen muestra una conexión vía SSH usando la interfaz usb0 en la PC para conectarse a la PDA a través de un cable USB
    Posteriormente "postearé" como instalar paquetes usando ipkg que es una utilería similar a apt-get de debian al igual de como desarrollar aplicaciones para Familiar Linux y como levantar la interfaz wireless de la PDA HP iPaq RX3715 usando Familiar Linux
  • Se puede obtener información actualizada sobre el Port de Linux para iPaq RX3715 en el siguiente URL:

    http://handhelds.org/moin/moin.cgi/HpIpaqRX3715
  • En esta liga está la lista de información de ports de Linux para otros dispositivos

    http://handhelds.org/moin/moin.cgi/SupportedHandheldSummary
  • Liga dónde se pueden encontrar diversas aplicaciones empaquetadas para Familiar Linux

    http://www.w-ww.org/~rmoravcik/rx3000/rootfs/ipk/armv4t/
  • Superwaba y Eclipse en Windows

    Empezando a preparar mi charla para el próximo Congreso Nacional de Software Libre que tratará sobre programación de dispositivos móviles en linux usando software libre me encontré con un manual para instalar SuperWaba usando el Editor de Eclipse en Windows que hice hace un par de años para postearlo en el sitio de Pocket Mexico. Ahora pongo este "How To"para ir calentando un poco el tema para el CoNSoL tal cuál lo mandé a Pocket México en esa ocación, este manual que pongo a su disposición incluye los errores gramaticales, de dislexia tongue.png , quizá de horrografía, detalles de instalación en Windows y otros muchos errores más que hace un par de años no había dádome cuenta, claro este manual lo actualizaré para su uso con el último SDK de SuperWaba en el transcurso de los días pero en esta ocasión para su uso al 100% sobre Ubuntu Linux y asi presentarlo en el CoNSoL 2008, pero por ahora para fines prácticos de Usuarios de Windows posteo la primera versión -incluye mis errores- que hice de este HowTo aquí en mi blog por si les fuera útil este material en el futuro.
    En próximos días postearé más información sobre programación de aplicaciones móviles usando el SDK de SuperWaba.
    Programando con SuperWaba - 2006
    Instalación de Java
  • Descargar la versión 1.5 de Java del sitio de http:// java.sun.com e instalarlo en la PC.
  • Agregar al PATH de Windows el directorio de Java/ y Java/Bin y de JRE/
  • Descargar la última versión de Eclipse disponible en http://www.eclipse.org, recomendada la versión 3.1
  • Descomprima eclipse_3.X.zip en el directorio de C:\Eclipse
  • Editamos las variables de entorno de Windows y agregamos al path el directorio C:\Eclipse
  • Ejecutar Eclipse
  • Ir a Help->Software Updates->Find and Install ->Search For New Features to Install
  • Seleccionamos New Remote Site
  • En Name introducimos SuperWaba y en url la siguiente ruta
    "http://superwaba-ide.sourceforge.net/update"
  • Seleccionar OK y Luego Finish, automáticamente eclipse obtendrá los plugins de SuperWaba, solo presione aceptar cada vez que lo requiera la instalación.

    Instalación de SuperWaba
  • SuperWaba es una implementación libre con licencia LGPL para desarrollo de aplicaciones para dispositivos móviles.
  • Obtener el SDK de SuperWaba de la siguiente página de .
  • Descomprimir el archivo de superwaba sobre c: quedando instalado en c:/SuperWabaGPL
  • Creamos una carpeta llamada proyectos dentro de la carpeta de SuperWabaGPL
  • Agregaremos al CLASSPATH lo siguiente

    C:\SuperWabaSDK\lib;C:\SuperWabaSDK\lib\superwaba.jar;
    Instalación de Ant
  • Ant es una herramienta desarrollada por Apache que nos permitirá ejecutar y distribuir nuestros proyectos desarrollados con superwaba
  • Obtener ANT de esta URL:

    descomprimir el archivo zip en c:\ant
  • agregar el directorio bin de ANT al PATH del sistema actual

    Eclipse y SuperWaba
  • 1. Open menu File/New/Project/Java/Java Project. Click next.
  • 2. Choose a name for your project. (E.g.: UIGadgets)
  • 3. Uncheck the “Use default” option and open the directory where the application is. (E.g.:
    SuperWabaSDK/src/java/superwaba/samples/ui/UIGadgets)
  • 4. Click next. Press yes when asking to create project now.
  • 5. Select the Libraries panel. Click “Add External Jars”, and add the SuperWabaSDK/lib/SuperWaba.jar file.
  • 6. Click finish.
  • 7. Right-click the project, choose Properties.
  • 8. Select the “Java Build Path” page, then select the Libraries tab.
  • 9. Click in the + near the SuperWaba.jar file to open the options.
  • 10.Double-click the “javadoc location”. Select SuperWabaSDK/docs/html directory.
  • 11.Double-click the “source attachment”. Select the SuperWabaSDK/src/java folder.
  • 12.Click ok to finish.
  • To debug/run the project:
  • 1. Click menu Debug/Debug... or Run/Run... and ensure that a "Java Application" is selected in the "Configurations" box
  • 2. Click New SuperWaba Companion 35
  • 3. Enter the name of the configuration. (E.g.: UIGadgets)
  • 4. In the "Main" tab:

    • Project: click browse and select your project name (E.g.: UIGadgets)

    • Main class: type "waba.applet.Applet"
  • 5. In the "Arguments" tab:

    • Program arguments: type the class name that extends waba.ui.MainWindow (E.g.: "superwaba.samples.ui.gadgets.UIGadgets")

    • You may also enter, before the class name, the other possible parameters (see last
    topic of this chapter)
  • 6. Click Run / Debug.

    Información de las Clases de SuperWaba

    Paquete de Superwaba incluidos en SuperWaba.pdb
  • waba.fx

    Clase relacionada al manejo de gráficos, fuentes, imágenes geométricas, imágenes y sonidos.
  • waba.io

    Clase para entrada y salida de datos, para acceder a archivos PDB representado por la clase Catalog,
    Comunicaciones vía sockets, Puertos Seriales y algunas utilidades para hacer más fácil el manejo de entrada y salida de datos.
  • waba.lang

    Clase que contiene clases originales de java.lang y contiene únicamente subconjunto de métodos
  • waba.ui

    Esta es la clase más importante, contiene clases para manejo de interfaces gráficas para crear buenos y rápidos programas.
  • waba.util

    Clases de utilerías que contienen clases como Date, Generación de Números Aleatorios y Estructura de datos (Vectores y Tablas de Ordeamiento)



    Extensiones de SuperWaba
  • superwaba.ext.ce.io.builtin

    Clase que me permite conectar a la interfaz de VC++ del PocketOutlookObjectModel.
  • superwaba.ext.ce.io.builtin.pimal

    Implementación para el Framework PIMAL de CE
  • superwaba.ext.ce.io.gprs

    Esta clase me permite abrir conexiones GPRS en PocketPC y SmartPhones.
  • superwaba.ext.palm.io.builtin

    clase que me permite controlar aplicaciones originales de PalmOS
  • superwaba.ext.palm.io.builtin.pimal

    Implementación para el Framework PIMAL de Palm
  • superwaba.ext.palm.io.print.irprint

    Clase que me permite conectarme a la interfaz de impresión vía puerto IrDA de PalmOS
  • superwaba.ext.xplat.fx.gif

    Clase que me permite manejar archivos .gif
  • superwaba.ext.xplat.fx.jpeg

    Clase que me permite manejar archivos jpeg
  • superwaba.ext.xplat.fx.png

    Clase que me permite manejar archivos png
  • superwaba.ext.xplat.game

    Un framework de SuperWaba que me permite desarrollar fácilnete juegos para dispositivos móviles.
  • superwaba.ext.xplat.html

    Clase que me permite manejar html y mostrar forms y tablas
  • superwaba.ext.xplat.html.ui

    Controles usados por la Clase HTMLContainer
  • superwaba.ext.xplat.io
  • superwaba.ext.xplat.io.gps

    Un control que me permite mostrar datos GPS
  • superwaba.ext.xplat.io.gps.garmin

    Un control que me permite implementar el protocolo GPS GARMIN
  • superwaba.ext.xplat.io.http

    Clase que me permite controlar peticiones HTML mediante sockets
  • superwaba.ext.xplat.io.pimal

    Capa de abstracción de Administrador Personal de Información.
  • superwaba.ext.xplat.io.pimal.addressbook

    Me permite conectarme a la libreta de direcciones del dispositivo
  • superwaba.ext.xplat.io.pimal.datebook

    Me permite conectarme a la libreta de citas del dispositivo
  • superwaba.ext.xplat.io.pimal.memobook

    Me permite conectarme a la libreta de anotaciones del dispositivo
  • superwaba.ext.xplat.io.pimal.todobook

    Me permite conectarme a la libreta de tareas del dispositivo
  • superwaba.ext.xplat.io.print

    Clase que define elc omportamiento de la librería de impresión de superwaba
  • superwaba.ext.xplat.io.print.pboy

    Clase de impresión para printboy de SuperWaba
  • superwaba.ext.xplat.io.scanner

    Clase que me permita soportar lectores de código de barras symbol en PalmOS y Windows CE
  • superwaba.ext.xplat.io.search

    Clase que me permite mejorar la búsqueda secuencial en archivos PDB
  • superwaba.ext.xplat.sql

    Una clase que implementa un sbconjuto de métodos de la clase java.sql
  • superwaba.ext.xplat.sql.db2e

    Esta clase es parte de el paquete superwaba.ext.xplat.sql.db2e y son parte de la implementación para
  • xplat.sql package.
  • superwaba.ext.xplat.sql.db2e.db2ex

    Implementa una interfaz nativa a WDBC.
  • superwaba.ext.xplat.sql.pdb.pdbx

    Manipula PDB usando SQL
  • superwaba.ext.xplat.sync

    Me permite sincronizar una PalmOS con PalmDesktop
  • superwaba.ext.xplat.ui

    Algunas interfaces de usuario que me proveen una funcionalidad adicional
  • superwaba.ext.xplat.ui.db

    Controles práticos para usar con la clase PDBDriver
  • superwaba.ext.xplat.util

    Clases de utilería
  • superwaba.ext.xplat.util.crypto

    clases que me permiten encriptar y desencriptar datos
  • superwaba.ext.xplat.util.datergf

    clase que permite un manejo avanzado de hora y fecha.
  • superwaba.ext.xplat.util.props

    Propiedades y otras clases
  • superwaba.ext.xplat.util.zip

    Una implementación de la librería de java Zip
  • superwaba.ext.xplat.util.zip.checksum

    clase estándar para checksum
  • superwaba.ext.xplat.webservice

    clase para desarrollar webservices con soporte para encriptación y compresión
  • superwaba.ext.xplat.xml

    Un muy completo manejador de XML
  • superwaba.ext.xplat.zlib

    Permite soporte para la librería de compresión Zlib.
  • waba.applet

    Paquete usado para emular SuperWaba corriendo en el escritorio
  • Como sincronizar una PDA HP iPaq Pocket PC 2003 con Ubuntu Linux Edgy

    La primera vez que intenté configurar una PDA con Linux fué por allá del 2005 cuándo intenté conectar una Terminal MC50 de Symbol Technologies con Linux a través de SynCE, esa vez el éxito fué efímero ya que recuerdo que si había logrado conectar la PDA pero por alguna razón solo fué una vez y las demas recibía un mensaje de error, por el trabajo que esa vez me ocupaba lo dejé y desistí intentarlo de nuevo.
    Hace unos días estando de vacaciones y ante la ociosidad que imperaba en mi tiempo/espacio decidí intentarlo de nuevo, pensando que sería un calvario como la primera vez agarré valor para intentarlo de nuevo, pero cuál sería mi sorpresa que la configuración sería mucho más fácil de lo que hubiera imaginado y del tiempo esperado.
    Bueno la idea de este post no es tanto rollo que a nadie interesa, pero si el saber como sincronizar una PDA con Linux. En Windows existe una aplicación llamada Active Sync, la cuál permite copiar,mover, eliminar, modificar archivos, crear directorios en una PDA con Windows CE o Pocket PC y así como también instalar aplicaciones para móviles, entre otra de las utilerías de Active Sync es permitir la sincronización de correos, contactos, notas, archivos de word, conversión de archivos, etc. Aunque Active Sync es buena herramienta aun le faltan muchas utilerías las cuáles solo se consiguen programandolas haciendo uso de una librería libre desarrollada por OpenNetCF llamada OpenNetCF.DesktopCommunication.
    En Linux no existía una herramienta tal como Active Sync, pero hace algunos años fué creado el proyecto SynCE, el cuál permitía sincronizar una PDA con Windows CE o PocketPC con Linux. Actualmente el proyecto de SynCE está muy avanzado y el cuál ya realiza la mayor parte de muchas de las tareas de Active Sync incluso incopora otras mucho más interesantes como es el caso de iniciar aplicaciones en la PDA desde comandos de Linux.
    Otra característica interesante de SynCE es que levanta una interfaz de red con la conexión USB realizada con la terminal portátil, no importando si es una PDA con Windows CE o PocketPC 2003, cosa que con ActiveSync solo funciona con Windows Mobile 2005, por lo que SynCE ahora le asigna una IP a la terminal al conectarla.
    Comencemos con la configuración
    Configuración en modo Consola
    #El primer paso para configurar la conexión es instalar las librerías de la conexión USB del dispositivo
    sudo apt-get install usb-rndis-source cdbs
    sudo module-assistant auto-install usb-rndis
    #A continuación solo es darle un ojo a lo que contiene dmesg para ver si reconoció efectivamente la PDA
    sudo dmesg
    #Este comando nos regresa algo por el estilo
    [17208765.684000] usb 2-2: new full speed USB device using uhci_hcd and address 2
    [17208765.840000] usb 2-2: configuration #1 chosen from 2 choices
    [17208766.024000] usbcore: registered new driver usbserial
    [17208766.024000] drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
    [17208766.024000] usbcore: registered new driver usbserial_generic
    [17208766.024000] drivers/usb/serial/usb-serial.c: USB Serial Driver core
    [17208766.036000] drivers/usb/serial/usb-serial.c: USB Serial support registered for PocketPC PDA
    [17208766.036000] drivers/usb/serial/ipaq.c: USB PocketPC PDA driver v0.5
    [17208766.036000] ipaq 2-2:1.0: PocketPC PDA converter detected
    [17208766.040000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0
    [17208766.040000] usbcore: registered new driver ipaq
    [17208766.956000] usb 2-2: USB disconnect, address 2
    [17208766.956000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0
    [17208766.956000] ipaq 2-2:1.0: device disconnected
    [17216809.168000] usb 2-2: new full speed USB device using uhci_hcd and address 3
    [17216809.324000] usb 2-2: configuration #1 chosen from 2 choices
    [17216809.328000] ipaq 2-2:1.0: PocketPC PDA converter detected
    [17216809.332000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0
    [17217765.692000] CSLIP: code copyright 1989 Regents of the University of California
    [17217765.704000] PPP generic driver version 2.4.2
    [17217765.860000] ip_tables: (C) 2000-2006 Netfilter Core Team
    [17217767.436000] PPP BSD Compression module registered
    [17217767.508000] PPP Deflate Compression module registered
    [17217956.564000] usb 2-2: USB disconnect, address 3
    [17217956.564000] ipaq 2-2:1.0: device disconnected
    [17217956.568000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0
    [17217959.824000] usb 2-2: new full speed USB device using uhci_hcd and address 4
    [17217959.984000] usb 2-2: configuration #1 chosen from 2 choices
    [17217959.984000] ipaq 2-2:1.0: PocketPC PDA converter detected
    [17217959.988000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0
    [17218294.300000] usb 2-2: USB disconnect, address 4
    [17218294.300000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0
    [17218294.300000] ipaq 2-2:1.0: device disconnected
    [17218297.572000] usb 2-2: new full speed USB device using uhci_hcd and address 5
    [17218297.732000] usb 2-2: configuration #1 chosen from 2 choices
    [17218297.736000] ipaq 2-2:1.0: PocketPC PDA converter detected
    [17218297.736000] usb 2-2: PocketPC PDA converter now attached to ttyUSB0
    #De todo este relajo lo importante es la siguiente línea
    [17208766.956000] ipaq ttyUSB0: PocketPC PDA converter now disconnected from ttyUSB0
    #lo que indica que nos reconoció el dispositivo exitosamente y ahora configurará el puerto en ttyUSB0
    #lo que sigue es instalar los paquetes de SynCE, en este caso para que funcione junto con KDE
    sudo apt-get install syncekonnector-dev  syncekonnector synce-serial synce-multisync-plugin synce-kde  synce-dccm  
    #Con esto básicamente ya tenemos todo lo necesario solo faltaría iniciar los módulos del puerto USB
    #Cargamos el módulo para la iPaq
    sudo /sbin/modprobe ipaq  
    #Quizá nos mandé unos warnings, en este caso solo ignorarlos
    #A Continuacion iniciar synce indicando que use el puerto /dev/ttyUSB0 que es dónde recibe la conexión USB de la PDA
     sudo synce-serial-config ttyUSB0
     
     #Despues iniciar el daemon para la conexión de sincronización con la PDA.
    dccm -f &
    #Dspues de iniciar el daemon iniciar la conexion con la PocketPC
     sudo synce-serial-start
     #despues de ejecutar el comando en la consola se verá un mensaje que synce está esperando la conexión con la PDA
     #Si todo salió bien en la terminal debe mostrar la ventana de sincronización y en la consola mostrar un mensaje como el siguiente
     dccm[20168]: Talking to 'Pocket_PC', a PocketPC device of type HP iPAQ rx3700
     
    A partir de aqui se pueden usar los siguientes comandos de consola para interactuar con la PDA
    • pstatus allows you to obtain status on your connection and information about the device you have connected.
    • pls allows you to obtain a listing of the files on your device.
    • pmkdir creates a directory (or folder) on your device.
    • pcp copies files to and from the device.
    • prun runs a program on the device from your Linux machine.
    • synce-install-cab installs a .cab file on the device.
    Configuración en modo GUI
    Existe también la posibilidad de tener una interfaz gráfica para conectar la PDA con SynCE a través de KDE, en este caso usaremos la aplicación Raki que se encuentra en el menú Utilidades de KDE.
    Antes de iniciar en modo GUI ejecutar los siguientes comandos desde la consola

    sudo /sbin/modprobe ipaq

    sudo synce-serial-config ttyUSB0
    La primera vez que se usa esta aplicación, pide algunos valores de configuración los cuáles se recomiendan aceptar los defaults.

    Despues de que se inicia Raki, se verá el ícono en el panel principal de KDE, seguramente se observará en un tono gris el icono, esto ya que no está sincronizada la PDA aún y tampoco se ha ejecutado el daemon dccm.
    Si es que no se ha ejecutado en automático el daemon dccm, desde el ícono de Raki en el panel, presionar el botón derecho del mouse y seleccionar Start DCCM, ahora solo faltaría iniciar Synce-Serial desde la consola
    En la consola ejecutar

    sudo synce-serial-start
    Y con esto quedará sincronizada la PDA con Linux, a partir de ahora ya se puede usar Raki para instalar programas, para ejecutar aplicaciones en la PDA, para ver el directorio de de la terminal desde Konqueror, ver información del sistema, entre otras utilidades que tiene Raki.
    Si se desea ver el directorio de la Terminal usando Konqueror, tal como lo hace Explorer, en Konqueror abrir la siguiente dirección
    rapip://active_connection/
    Si la sincronización fué correcta, se podrá observar el directorio de la PDA en Konqueror y a partir de ahí se pueden ya hacer múltiples de cosas interesantes.
  • An Introduction To SQLite by Dr. Richard Hipp in Google Talks

    Today searching in internet any projects developed using SQLIte as database in mobile devices, I've good luck finding a conference given by Dr. Richard Hipp, he developed sqlite as an alternative to embedded databases seven years ago aproximately and this fantastic database allow to be embedded into your applications without need a database server, network connection or another IT infrastructure.
    The talk is very interesting to know more about of SQLite.
    I hope that you enjoy this conference like me. face-wink.png
    Note:
    Developed Project by Dr. Richard Hipp http://www.hwaci.com/drh/
  • Soporte de Teclas de Función en PocketPC

    Hace unos días desarrollando una aplicación de toma de inventarios para una empresa requerí usar una terminal MC1000 de Symbol Technologies, la cuál de fábrica trae un sistema operativo Windows CE 4.2, Windows CE es una plataforma para dispositivos móviles desarrollado por la empresa Microsoft.
    Debido a que la terminal portátil MC1000 no tiene una pantalla táctil(touchscreen) fué requerido implementar teclas de función para la ejecución de diversas funciones dentro de la aplicacion, no hubo mayor problema en desarrolar la parte de la aplicación para ser usada mediante teclas de función, el detalle fué cuándo requerí probar rápidamente la aplicación ya que en ese instante no contaba físicamente una terminal MC100 por lo que quise probar en mi PDA una HP iPaq RX3715 la cuál contiene un sistema operativo Pocket PC 2003 Second Edition, el cuál es diferente a WindowsCE, empezando porque PocketPC no trae teclas de función mientras que Windows CE si, ni en las últimas versiones de PocketPC no se ven teclas de función, por lo que no me quedó más que buscar en internet una solución que me permitiera cargar un teclado en la PDA que soportara teclas de función, para mi suerte pude encontrar un teclado virtual para pocketpc llamado Euro Keyboard.
    Lo interesante de Euro Keyboard es que es una aplicación desarrollada bajo la filosofía del Software Libre lo que indica que tanto el binario asi como el código fuente de la aplicación estan disponible para su descarga en este caso sin ningún costo, por lo que sin dudarlo lo bajé de Source Forge y pasé a instalarlo a mi PDA tal como se puede ver en el screenshot.
    Al hacer la prueba de mi aplicación usando esta utilería no tuve mayor problema al usar las teclas de función(F1, F2, F3.. ) en mi iPaq con PocketPC tal como debería operar en una terminal MC1000 con Windows CE.
    Por si alguien pudiera serle práctica esta utilería les paso el URL del proyecto Euro Keyboard en SourceForge para que pueda probarlo o mejor aún mejorarlo ! face-wink.png
    http://eurokbd.sourceforge.net/
  • Printing with Zebra Technologies RW-420 Printer and Symbol Motorola MC70 Mobile Terminal using Bluetooth connections..

    Today I was programming an application using the Compact Framework 2.0 with Visual Studio .Net 2005. I needed to print using the bluetooth connection between a Symbol MC70 Terminal and a Zebra RW-420 Printer and searching libraries in System.IO.Serial I can't found nothing interesting, then I remember that OpenNetCF released a Serial Library as Open Source, without think more I went to the OpenNetCF Site to get the Source Code of the library and build with VS .Net 2005 to obtain the dlls and add the reference to my project.
    The URL of the Serial Library is :
    http://www.opennetcf.com/FreeSoftware/OpenNETCFIOSerial/tabid/252/Default.aspx
    Then using the library I make a light class to print CPCL Code in Zebra RW 420.
    The Bluetooth connection between the RW420 and MC70 was successfully, Creating a Serial Com Port in ther mobile terminal with Windows Mobile 2005. Only I need Label Vista for Zebra to configure the properties of serial port of the mobile printer.
    If anyboy have any problem using RW420 printer, I put the code of my class, only you will need add the class in a namespace:
        class Zebra
        {
            OpenNETCF.IO.Serial.Port Serial;
            string status;
             string status_error;
            string receive_data;
            public Zebra() {
                status = "";
                status_error = "";
                 receive_data = "";
            }
                   
                    public Boolean OpenPort(string portName)
                    {
                StatusClean();
                OpenNETCF.IO.Serial.HandshakeNone portSettings = new OpenNETCF.IO.Serial.HandshakeNone();
                            Serial = new OpenNETCF.IO.Serial.Port(portName, portSettings);
                            Serial.DataReceived += new OpenNETCF.IO.Serial.Port.CommEvent(dataReceived);
                            Serial.RThreshold = 1;
                            Serial.InputLen = 30;
                            Serial.SThreshold = 1;
                            Serial.Settings.BaudRate = OpenNETCF.IO.Serial.BaudRates.CBR_57600;
                            Serial.Settings.Parity = OpenNETCF.IO.Serial.Parity.none;
                            Serial.Settings.StopBits = OpenNETCF.IO.Serial.StopBits.one;
                            Serial.Settings.ByteSize = 8;
                            if (!Serial.IsOpen)
                            {
                                    try
                                    {
                                            Serial.Open();
                                            status = "Port opened";
                                            return true;
                                    }
                                    catch (Exception ex)
                                    {
                                            status_error = "Error in port opening";
                                            return false;
                                    }
                            }
                            else
                            {
                                    return true;
                            }
                    }
                   
            /// <summary>
            /// Close Serial Port
            /// </summary>
                    public void ClosePort()
                    {
                StatusClean();
                try
                {
                    status = "Serial Port closed successfully";
                    Serial.Close();
                }
                catch {
                    status_error = "Seial Port not closed";
                }
                    }
                    /// <summary>
                    /// Send a string to the Serial Port
                    /// </summary>
                    /// <param name="cmd"></param>
                    public void SendCmd(string cmd)
                    {
                StatusClean();
                if (Serial != null)
                            {
                                    if (Serial.IsOpen)
                                    {
                                            try
                                            {
                                                    Serial.Output = StrToByteArray(cmd);
                                            }
                                            catch (Exception ex)
                                            {
                                                    status_error = ex.Message.ToString();
                                            }
                                    }
                            }
                            else
                            {
                                    status_error = "Port is not opened";
                            }
                    }

                   
                    /// <summary>
                    /// Allow to know the incoming string from serial port
                    /// </summary>
                    /// <param name="s"></param>
                    /// <param name="e"></param>
                    public void ReceivedData(object s, EventArgs e)
                    {
                            byte[] inputData = new byte[30];
                            inputData = Serial.Input;
                            string displayString = Encoding.ASCII.GetString(inputData, 0, inputData.Length);
                            receive_data += displayString;
                    }
                    //________________________
                   
                    /// <summary>
                    /// Convert  a string to byte array
                    /// </summary>
                    /// <param name="str"></param>
                    /// <returns></returns>
                    public static byte[] StrToByteArray(string str)
                    {
                            System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
                            return encoding.GetBytes(str);
                    }
                   
            /// <summary>
            /// Clean the status properties
            /// </summary>
            private void StatusClean(){
                status_error = "";
                status_error = "";
                status = "";
            }

     
    You can call the class from an event, for example:
    //Create the property in your class
    private Zebra ZebraPrinter;
    // call to the constructor
    ZebraPrinter = new Zebra();
    //And execute the OpenPort Method given the Serial Port of your Connection
    if (ZebraPrinter.OpenPort("COM4") == true) {

    //If the connection is successfully then send the string to Serial Port
    ZebraPrinter.SendCmd("! 0 200 200 800 1\r\nLABEL\r\nCONTRAST 0\r\nTONE 0\r\nSPEED 3\r\nPAGE-WIDTH 240\r\nBAR-SENSE\r\nTEXT90 4 3 36 288 .88\r\nTEXT90 5 2 163 273 SWEATSHIRT\r\nVBARCODE UPCA 2 1 45 139 576 04364503284\r\nTEXT90 7 0 191 511 043645032841\r\nTEXT90 5 0 4 524 COMPARE AT\r\nTEXT90 4 0 30 508 $ 30.00\r\nTEXT90 5 0 115 575 ZD-180-KL\r\nTEXT90 5 2 119 269 ALL COTTON\r\nTEXT90 7 0 114 389 01/17/98\r\nTEXT90 0 0 208 173 EA00-732-00560\r\nTEXT90 5 0 82 519 ELSEWHERE\r\nBOX 189 358 217 527 1\r\nPRINT\r\n");
       }
    //Close the POrt when you finish to send data to the Zebra Printer
    ZebraPrinter.closePort();
     
    The code is very simple, but it works and save many time and work ..
    My English suck.. but I need to practice it...
  • Microsoft libera el código fuente completo para Emulador de Windows CE & Pocket PC

    Bajando unas librerías para del desarrollo de una aplicación en OpenNetCF doy por casualidad con una nota en un blog de MSDN dónde comentan que hace más de un año Microsoft liberó el código fuente completo del Emulador de Windows CE y Pocket PC, el código fuente completo al parecer puede compilarse directamente desde el Visual Studio 2005, de tal forma que con este emulador ya no hará falta tener físicamente el dispositivo para probar las aplicaciones desarrolladas para esta plataforma de dispositivos móviles y asi probar nuestros desarrollos dentro del Emulador directamente.
    El código fuente del Emulador de Windows CE y Pocket PC puede obtenerse desde la siguiente URL
    http://www.microsoft.com/downloads/details.aspx?FamilyID=FAA8C81D-7316-4461-A0ED-6C95B261DDCD&displaylang=en
    .
  • Conectar una Terminal Portátil vía GPRS a una red VPN usando Software Libre.

    Este no es un HowTo, mucho menos un tutorial, solo es una referencia rápida de como implementar una conexión VPN entre dispositivos móviles con Windows Mobile 2003 o 5.0 a traves de redes GPRS.
    Debido a la falta de compatibilidad entre los Appliances de seguridad y conexiones VPN existentes en el mercado para con los dispositivos móviles y despues de haber intentado varias soluciones que no tuvieron éxito, me puse a investigar una solución que pudiera permitir algunas terminales portátiles conectarse a un servidor VPN para lo cuál tuve suerte de encontrar OpenVPN.
    OpenVPN es una solución VPN fácil y rápida de implementar aparte de ser muy segura y con muchas características configurables que le permiten adaptarse a cualquier escenario planteado, pero lo importante es que permite conexión desde dispotivos móviles bajo la plataforma de Windows Mobile y es una solución Open Source lo que indica que no es necesario pagar un licenciamiento adicional por cada conexión o servidor implementado.
    La versión de OpenVPN como servidor puede obtenerse libremente desde la siguiente dirección http://www.openvpn.org.
    La implementación del servidor OpenVPN se realizó bajo la plataforma de Ubuntu Linux Server y para lo cuál se siguió el siguiente HowTo para su implementación en el servidor : http://openvpn.net/howto.html
    En la parte móvil se usó una terminal portátil Symbol MC70 con conexión GPRS habilitada con el proveedor de Movistar. En la terminal portátil de Symbol desarrollé una aplicación que contiene un sistema para generar cotizaciones en línea, generación de pedidos, control de inventarios y facturación electrónica, para lo cuál era necesario acceder remotamente a un servidor de MS SQL Server para extraer la información de la base de datos que son alrededor de 20 tablas con un global de 50,000 registros apróximadamente y almacenar esa información en una base de datos local dentro de la terminal portátil MC70 y así operar en modo batch para despues solo enviar la información capturada al servidor remoto usando la conexión GPRS a traves de una conexión segura VPN.
    Para poder hacer la conexión a la base de datos era necesario tener una conexión VPN segura, se intentó conectar al appliance que se tiene instalado en las instalaciones del cliente, pero por cuestiones de incompatibilidad la conexión no se pudo realizar usando los mecanismos de VPN estándares de Windows Mobile, por lo que recurrimos a una solución OpenSource la cuál ha resultado bastante eficaz y con la cuál estamos operando en estos momentos.
    El cliente OpenVPN para dispositivos móviles puede obtenerse de la siguiente dirección http://ovpnppc.ziggurat29.com/ovpnppc-files.htm su uso e implementación dentro de la términal portátil es fácil pero el sitio de OpenVPN cuenta con un forum por si pudiera presentarse un problema durante su instalación y configuración.
  • OpenNetCF ahora más libre..!

    Buscando unas librerías para compresión y descompresión de archivos para dispositivos móviles que use hace tiempo para un proyecto, entro de nuevo al sitio de OpenNetCF para descargarlas, pero antes de hacer la descarga de la librería noto que OpenNetCF se pasa de la licencia Shared Source (que usa mayormente Microsoft en sus proyectos dónde libera código fuente) a una licencia más abierta como es la MIT la cuál es simple de entender y es mucho más permisiva que la anterior.
    Por lo comentado en el sitio de OpenNetCF el cambio de licenciamiento será paulatino esto debido a la exigencia de la comunidad y también debido ante los reclamos de la comunidad en el evento MEDC ‘06 según lo que entiendo en este post del blog de la comunidad de OpenNetCF.
  • Emblemas

    Energizado por Jaws Project
    Soporta RSS2
    Energizado por Software Libre
    Energizado por Mozila Firefox
    Energizado por Ubuntu Linux
    Energizado por PHP
    Energizado por Apache Web Server
    Energizado por MySQL
    Energizado por SQLite
    atom

    ¿ Where The Hell Am I ?

    Mi Flickr







    Aquí Mis Mejores Fotos

    Eventos

    Encuesta

    ¿Que medio de comunicación usas más ?

    Comentarios Recientes