Comparto un script que hice para entender el funcionamiento de Ajax, no había tenido curiosidad de intentar conocer Ajax pero despues de un rato de ociosidad me metí a entenderlo y creo que su operación es relativamente sencilla y tiene muchas utilidades para diferentes aplicaciones web.
El script de Ajax puede verse funcionando aquí http://phylevn.mexrom.net/ajax/
Pongo a su disposición un archivo en formato 7zip para que hagan sus pininos en esto del Web 2.0
Pueden descargar el archivo en la siguiente url :
sepomex.php: script que importa el archivo sepomex2.csv a la base de datos de mysql.
index.php: script principal que generar los ComboBox de Estados, Municipios y Colonias. Contiene igual 2 funciones para cuándo cambie la información de estado y municipio y pueda hacer la consulta correspondiente para traer los datos del servidor.
ajax.js:script que crea el objeto ajax, que es util para la operación de las funciones en index.php
procesos.php: script que es mandado a llamar por los scipts de ajax para hacer las consultas correspondientes de estados y municipios.
funciones.php: script que genera los combobox en base a las consultas generadas por ajax y enviadas a traves de procesos.php
Si no tuvieran instalado un servidor web pueden probar Wamp Server y descargarlo de la siguiente url http://www.wampserver.com/en/
Espero esto pueda orientarlos y cualquier comentario siempre será muy bien recibido.
Saludos
Hoy despues de haber terminado el avance con un desarrollo para un cliente me puse a explorar algo sobre la tecnología llamada AJAX, de tal forma que alrededor de 1 hora pude comprender su funcionamiento e incluso desarrollar un demo, imaginé que sería mucho más complicada el entenderla pero al parecer su uso no es tan difícil como aparenta ser. Introducción AJAX [*] Es una tecnología relativamente nueva la cuál permite a las aplicaciones web hacer peticiones de información a diversos servidores sin recargar toda la página web como se lleva a cabo actualmente en muchas aplicaciones.
¿ Qué ventajas tendría esto ? Por ejemplo en una página de información de películas de cine digamos CineMex, para poder ver las películas disponibles para hoy en la tarde en la sala de Plaza Universidad, al seleccionar en el combobox la sala de Plaza Universidad la página recarga todo completamente imagenes, textos, videos, y la información que requiero sobre las películas que se exhiben ahi. Con Ajax esto no pasaría, pues al seleccionar en el combobox la opción de plaza universidad solo cambiaría la información en el listado de películas de la sala seleccionada pero sin tener que recargar toda la información del sitio, esto es lo que muchos sitios ya van implementando y generando algo llamado Web 2.0. Continuando...
Despues de hacer las pruebas correctas en mi PC usando FireFox quise intentarlo en una Terminal de Symbol Technologies la MC70 con Windows Mobile 2005, pues es ahí dónde su uso sería mucho más interesante, ya que debido al costo que tiene el GPRS (Costro Movistar,Costo Telcel) por kilobyte aquí si es imprecindible el solo poder consultar los datos y no recargar páginas completas.
Hice una demo con AJAX usando la información de SEPOMEX para consultar estado, municipios, codigos postales, etc, subi la información que provee SEPOMEX de un csv a una base de datos en mysql y el demo generado puede verse aquí en http://phylevn.mexrom.net/ajax/ intenté ejecutar este demo desde el navegador por default de Windows Mobile 2005 con el Pocket Internet Explorer pero fué un fracaso, por lo cuál tuve que recurrir a Minimo. Lo interesante... Minimo es una versión de FireFox pero para dispositivos móviles el cuál ya se encuentra en la versión 0.2. Existen versiones de Mínimo para Windows Mobile 2003 y para las nuevas versiones de Windows Mobile 2005 así como tambien para la versión 6 de Windows Mobile. En un principio Minimo era muy lento, recuerdo las primeras veces que intenté ejecutarlo en mi iPaq RX3715 la carga era lentísima y había que esperar mucho para recargar una página, pero ahora Minimo se ha desarrollado mucho y es una alternativa mucho mejor que Pocket Internet Explorer desde mi punto de vista. Minimo puede ser descargado de su sitio web ubicado en http://www.mozilla.org/projects/minimo/.
Lo interesante que pude observar es que Minimo si soporta Ajax, de hecho me pude conectar al demo de AJAX y sin ningún problema Minimo pudo efectuar el proceso haciendo uso de AJAX, esto es muy interesante ya que se puede aprovechar esta tecnología junto con el navegador de Minimo para desarrollar aplicaciones móviles que hagan uso de la tecnología GPRS.
RFID que por sus siglas en ingles significa Identificación de Datos por Radio Frecuencia es un término que es usado para definir un sistema que transmite información serializada de alguna entidad por medio de ondas de radio frecuencia. El RFID fué rediseñado para permitir a diversos dispositivos de lectura capturar información de etiquetas y enviarlos automáticamente a un sistema de cómputo para su procesamiento sin la necesidad de que un ser humano pueda estar involucrado en el proceso.
Una etiqueta de RFID consiste de un microcircuito electrónico unido a una antena de radio pasiva o activa montada sobre una placa de sustrato. El microcircuito puede almacenar hasta 2 kilobytes lo que equivaldría por ejemplo a escribir sobre la etiqueta de RFID la descripción del producto, marca, su fecha de manufactura, origen, lote, etc., algo así como un código de barras bidimendional PDF-417 pero inalámbrico ¿ Genial no crees ?. Para poder leer la información escrita sobre la etiqueta de RFID se requiere de un lector especial RFID que no es más que una o más antenas que excitan al microcircuito para obtener la información de forma inalámbrica mediante ondas de radiofrecuencia, el lector despues de obtener la información de la etiqueta RFID envía los datos de forma digítal a un sistema de cómputo para el procesamiento deseado es común ver por ejemplo sistemas de tomas de inventario de activos fijos haciendo uso de esta tecnología desde terminales portátiles.
El RFID está siendo usado en la actualidad por miles de empresas desde finales del siglo pasado. ¿ Pero si el RFID es una tecnología de mediados del Siglo pasado entonces porqué hasta ahora causa interes por parte de las empresas ? el principal problema sin duda fué el costo, pero en los últimos años su costo ha disminuído considerablemente debido al la popularidad que ha tenido lo que ha permitodo su uso masivo por diversas empresas por lo que en la actualidad ya es factible aplicarlo en diversos procesos de las empresas.
Hasta ahora el RFID tiene mayor uso en el control de almacenes, cadenas de suministro, control de inventarios de activos fijos, control de personal por lo que es permisible pagar cómo mínimo más de 10 ctvs de dólar por parte de las empresas para tener mayor control y así hacer más eficaces sus procesos.
El RFID también es usado para llevar un seguimiento de cadenas de suministros abiertas, donde las chips de RFID son puestos en cajas ó envases por una compañía y pudiendo ser leídas por otra, el principal impedimento para adoptar la tecnología de RFID en las empresas es el costo. En el año de 1999 la UCC( Uniform Code Council ) y EAN International unieron esfuerzos junto con la empresa Gillete y Procter & Gamble para fundar el Auto-ID Center en el Instituto de Tecnología de Massachussets. El centro se encargó de modificar la ecuación al trabajar con la industria privada para desarrollar una etiqueta RFID que fuera de muy bajo costo (el propósito fue 5 centavos) cuando se fabricara en grandes cantidades.
El costo de 5 ctvs de dólar todavía está a algunos años de ser realidad, el costo actual mínimo en EU es de 20 a 30 ctvs de dólar, dependiendo de sus características y empaquetado ya que existen chips de RFID para diversos usos por lo cuál su costo puede incrementar considerablemente por lo cuál siempre es necesario hacer un estudio previo para definir los requisitos necesarios para la implementación de la tecnología RFID.
El aporte de Auto-ID Center no solo se concentró en desarrollar una etiqueta de bajo costo, si no también en crear un esquema de serialización numérica que hiciera posible tener único número serial por cada artículo fabricado.
Auto-ID Center también desarrollo un protocolo de comunicación entre los lectores y las etiquetas RFID para que existiera un estándar que pudiera ser implementado por diversos fabricantes. También diseño una estructura de red para almacenar la información en una base de datos de internet segura, el Auto-ID center traspasó su desarrollo a una organización llamada EPCGlobal la cuál creó un protocolo de comunicación conocido como de Segunda Generación sobre la cuál se ha concentrado en desarrollar una infraestructura de red que se denominará EPCGlobal Network, la finalidad de esta infraestructura es compartir información en tiempo real entre diversas compañías.
¿ Cuál es la finalidad de crear una infraestructura de red sobre la tecnología de RFID ?
Supongamos que una Compañía A envía cajas llenas de café de altura en alguna parte de la Sierra Norte de Oaxaca, las cajas y empaques son leídos con un lector de RFID cuándo se haga el embarque y a traves de una aplicación de cómputo conectada a internet pueda informar a la Compañía B que el embarque ha salido hacias sus bodegas.
La compañía B cuándo reciba el embarque, lee las etiquetas RFID automáticamente al pasar por un portal con antenas de radiofrecuencia, en ese momento se envía un mensaje a la compañía A. La eficiencia potencial creada por esta visibilidad es enorme. Las compañías serán capaces de reducir sus inventarios mientras se aseguran de que los productos están en el lugar correcto en el tiempo correcto. Y puesto que no intervienen humanos para leer las etiquetas, los costos de mano de obra y los errores se reducirán enormemente.
Actualmente todavía es difícil pensar en la aplicación de RFID en ventas al consumidor final ¿ Esto porqué ? debido precisamente al costo de las etiquetas de RFID, ya que no sería factible poner un TAG (etiqueta) RFID de 10ctvs de dólar a un lápiz de 20ctvs de dólar pr ejemplo ya que esto incrementaría su precio en un 30%. Aunque el sueño de las cadenas comerciales es no solo usar RFID para la cadena de suministro ó control de almacenes si no también aplicarlo en la venta al consumidor, dónde el consumidor tome su carrito haga sus compras y al final no tenga que hacer cola por 20 minutos en el mejor de los casos en un día de quincena en una caja face-smile.png , si no pasar "libremente" por un portal con antenas RFID que lean los tags de los productos y en ese momento hagan el cálculo de la compra y en automático leer el tag RFID de la tarjeta de débito o crédito del consumidor y hacerle el cargo correspondiente.
El auge de RFID ya está muy próximo así como su uso masivo al igual que el código de barras y sus aplicaciones ya están funcionando aquí en México, en MexRom Technologies ya estamos trabajando con esta tecnología y empezando a dar soluciones a diversos clientes.
Pues ya está todo listo para el Encuentro Nacional de Linux que se llevará a cabo en la Benemérita Universidad Autonoma en la Ciudad de Puebla del 18 al 20 del próximo mes de Octubre.
Revisando el programa del ENLi'07 que se puede observar en la siguiente URL http://enli.org.mx/new/?nav=1.3 se puede observar que habrá interesantes temas con respecto a tecnologías corriendo sobre la plataforma linux de las cuáles me resultan interesantes desde mi punto de vista y de las que puedo mencionar son las siguientes:
Web con XAJAX
Jesus Christian Cruz Acono
Ajax es una tecnología que está tomando auge desde mediados del año pasado dentro de lo que es Web 2.0 y está revolucionando el mundo del internet.
Ruby on Rails: Porque hay mejores maneras de cortarse las venas que escribiendo PHP
Gunnar Eyal Wolf Iszaevich
Lástima que esta ponencia se traslape con la mía, pero definitivamente RoR(Ruby On Rails) es uno de los frameworks de desarrollo para web más interesantes y eficientes de los que existen actualmente en internet incluso mucho mejor que algunos frameworks de PHP y sin duda que valdrá la pena oir las razones de Gunnar para no cortarse las venas.
Nagios, una plataforma de gestión de redes.
Frank Abel Cancio Bello
Otra de las ponencias interesantes que valen la pena pero lástima que se traslapan con la mía, Nagios es una herramienta del software libre muy poderosa para monitoreo de servicios y dispositivos en red, muy práctica para los administradores de redes y sistemas.
SQL-Ledger, La opción para la empresa
Jesus Vazquez Contreras
Esta ponencia si no me la pierdo ya que SQL Ledger es un ERP basado en la folosofía del software libre que permite implementar todo un sistema contable, punto de venta y control de almacenes para empresas de todos los tamaños, creo que muchos empresarios se verían interesados por esta ponencia.
Asterisk: La revolución de la telefonía
Octavio Humberto Ruiz Cervera
Una ponencia interesante que mostrará la efectividad de el proyecto de Asterisk como una solución muy poderosa para las empresas en cuánto a telefonía, valdrá mucho la pena escuchar más experiencias que permitan enriquecer las que tengo hasta ahora con las implementaciones de este conmutador de VoIP.
Seguridad en aplicaciones web
José Carlos Nieto Jarquín
Sin duda que será interesante escuchar a uno de los hackers jóvenes mexicanos que han hecho cosas interesantes a pesar de su corta edad, este jovencito de apenas 20 años ha desarroollado proyectos interesantes como Gecko aparte de participar en varios retos de seguridad por lo qué será amena su plática sobre la misma.
Pues ojalá varios que lean este post se animen a participar en el ENLi que sin duda será uno de los grandes eventos de Software libre de este año.
Para ver el programa pueden acceder al siguiente URL http://enli.org.mx/new/?nav=1.3
Más información en : http://www.enli.org.mx
Debido a la implementación de un sistema de venta en línea usando tarjetas de crédito, me puse a investigar la forma de implementar pago mediante tarjetas de crédito desde una aplicación web.
Requerimientos :
Un servidor Web
Un certificado SSL avalado por el Banco.
OpenSSL, LibCurl, PHP, Apache2.
Un ID de transacción que le permite saber al banco que cliente y desde que punto de venta está efectuando el cobro.
Que es un certificado de Seguridad ? Mas información Aquí
En este caso hay que conectarse al servlet del banco HSBC usando CURL.
URL del Servlet https://www.vposhsbc.com/servlet/TranPortalHTTPServlet
Desarrollar un script que haga la transacción en línea, en este ejemplo usaremos un script muy sencillo como demo en PHP para que envíe los datos via CURL al servidor.
Aquí están todas las especificaciones del Banco HSBC para efectuar la transacción :
Especificaciones de Protocólo de Comunicación:
Protocólo: http
Puerto: 443 Verisign 3.0 SSL Certificate
Objetivo (acción): https://www.vposhsbc.com/servlet/TranPortalHTTPServlet
Método: POST
Tipo-Contenido: application/www-form-urlencoded or application/x-www-form-urlencoded
Formato de transmisión de datos:Url Encoded
Formato de respuesta de datos: Respuesta de una cadena de texto, delimitada por dos puntos...string:string:string:
Nivel de encripción: SSL Version 3.0
El sistema de captura de transacciones requiere que el desarrollador se comunique con una gama de variables a través de Internet por medio de posteo http a las siguientes direcciones:
https://www.vposhsbc.com/servlet/TranPortalHTTPServlet
Toda la información posteada debe ser en la forma de una cadena URL codificada de valores par nombrados.
Ejemplo de una transacción estándar: id=TranPortalID&password=password&action=1&card=4444333322221111&expYear=2005&expMonth=12&CVV2=123&member=Joe Smith &addr=50 Main St.&zip=12345&amt=10.00&trackid=unique tracking id&udf1=User Defined Field &udf2=User Defined Field&udf3=User Defined Field&udf4=User Defined Field&udf5=User Defined Field
Variables de transmisión de transacción y definiciones id - Número de identificación TranPortal. El ID TranPortal ID es emitido por HSBC para identificar el comercio y la terminal para procesamiento de transacciones.
Password - Password TranPortal. El password The TranPortal es emitido por HSBC para autentificar el comercio y Terminal. Tan pronto usted este emitiendo posteo http, su información será encriptada y su contraseña estará segura y oculta.
Acción - Las siguientes acciones son acciones válidas, y deben ser siempre formato numérico.
1. Venta
2. Crédito
3. Cancelación de Venta
4. Autorización
5. Captura
6. Cancelación de Crédito
7. Cancelación de Captura
8. value="9"> Cancelación de Autorización
card - Número de tarjeta de crédito
expyear - Fecha Año de Expiración (Debe ser numérico formato YYYY)
expmonth - Fecha Mes Expiración (Debe ser numérico formato MM)
expday - Fecha Día de Expiración (Debe ser numérico formato DD)
cvv2 - Código CVV2(Debe de ser en formato numérico)
member - Nombre completo de tarjetahabiente.
addr - Calle del consumidor. zip - Código Postal del consumidor.
amt - Monto de la transacción.
currencycode - El código de moneda de la transacción.
transid - ID de Transacción, usado para identificar la transacción original para cancelaciones y transacciones de capturas.
trackid - Un id de rastreo único emitido por el sistema del comercio que esta almacenado con la transacción.(Evite espacios y caracteres extendidos, use solamente alfanuméricos).
udf1- User Defined Field 1, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf2- User Defined Field 2, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf3- User Defined Field 3, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf4- User Defined Field 4, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf5- User Defined Field 5, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
Variables de Transmisión de Respuesta Cada transacción procesada a través de el sistema de captura de transacciones es regresada como un string simple de texto. Los valores de retorno de la transacción procesada son separados (delimitados) por caracteres ":". Es responsabilidad del desarrollador de pasar esta cadena de caracteres a un objeto empleable ó incluirlo para su software.
Ejemplo:
Result:Auth:Ref:AVR: Date:TransId:TrackId:UDF1:UDF2:UDF3:UDF4:UDF5
Definiciones de RespuestaResultado - Regresado como el evaluador de la respuesta de la transacción. El resultado deberá ser evaluado para determinar si la transacción fue efectuada satisfactoriamente después de que usted ha revisado por algún error.
• CAPTURED - La tarjeta fue capturada propiamente.
• APPROVED - La transacción fue aprobada.
• VOID - La transacción fue propiamente cancelada.
• NOT CAPTURED - La tarjeta no fue capturada.
• NOT APPROVED - La transacción no fue aprobada.
• NOT VOIDED - La transacción no fue cancelada.
• DENIED BY RISK - Risk denegó la transacción.
• FAILED AVS - La transacción no paso la verificación de dirección.
• HOST TIMEOUT - El sistema de autorización no respondió dentro del límite de tiempo.
Auth - El número de autorización resultado de la transacción.
Ref - El número de referencia resultado de la transacción. Este número ó serie de letras son usadas para propósitos referenciales para algunas instituciones adquirientes y deben de ser propiamente guardadas.
AVR - AVR es una letra simple que provee información acerca de la información de los tarjetahabientes enviada. La letra indica que tanto concuerda el número de tarjeta, dirección y código postal con el banco emisor de la tarjeta.
• A - Dirección concuerda.
• E - Error al comparar dirección.
• N - La dirección no concuerda.
• R - La dirección del sistema no disponible.
• S - Servicio no soportado.
• U - Comparación de Dirección no es posible.
• W - Código Postal de 9 dígitos concuerda.
• X - Dirección y Código Postal de 9 dígitos concuerdan.
• Y - Dirección y Código Postal de 5 dígitos concuerdan.
• Z - Código Postal de 5 dígitos concuerda.
• 0 - La dirección no pudo ser verificada.
Date - Fecha de la transacción en el formato del sistema de autorización.
TransId - ID de la transacción único emitido por el Commerce Gateway.
TrackId - El ID de rastreo enviado por el comercio en la solicitud de transacción.
udf1- User Defined Field 1, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf2- User Defined Field 2, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf3- User Defined Field 3, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf4- User Defined Field 4, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
udf5- User Defined Field 5, puede ser usado para pasar y salvar cualquier dato adicional de la transacción que usted desee archivar en la transacción y estar disponible como un criterio de búsqueda.
Mensajes de Respuesta de Error - Sí cualquiera de los errores ocurriera durante la transmisión de la información de la transacción, entonces el formato de respuesta contendrá una cadena indicando que un error ocurrió. Todos las respuestas de error inician con el identificador !ERROR!. Por lo tanto es importante para el desarrollador revisar la cadena del mensaje de respuesta actual y determinar sí un error ha ocurrido. Los códigos de error están listados en el manual Commerce Gateway Error Code Guide.
Espero este mini tutorial los haya orientado y no tarden tanto tiempo como en mis inicios buscando información de como hacerlo..
Saludos
Por motivo del Foro Nacional de Software Libre llevado a cabo en Coatzacoalcos Veracruz al que tuve la fortuna de asistir a principios del mes de Junio para dar una plática en el Centro de Convenciones sobre Programación de Aplicaciones Móviles con SQLite, tuve que hacer unos ajustes a el script de PHP para convertir archivos de CSV y generar una base de datos de SQLITE por lo que he liberado la versión 0.02 de este script haciéndolo más fácil de usar para algún programador que requiera exportar archivos CSV y generar una base de datos de SQLite.
El Script de PHP puede descargarse desde el siguiente URL https://sourceforge.net/projects/csv2sqlite/
Por cierto el material de mi ponencia puede ser descargado desde la siguiente URL http://phylevn.mexrom.net/data/files/files/SQLiteFonasol.pdf
Espero les sirva y cualquier comentario será bienvenido.
Despues de 1 mes sin conectividad aquí en el nuevo depto y ante el poco interes de mi arrendador de facilitarme la contratación de una línea Telmex, decidí por fin contratar el servicio de internet de banda ancha portátil de eGo proveído por MVS..
Despues de investigar su funcionamiento con varios amigos el único pero que podía existir era la cobertura, ya que eGo usa la tecnología de WiMax para permitir la conexión inalámbrica en una cobertura amplia, al parecer usa la frecuencia de los 2.4 ghz similiar al WiFi y muchas partes de la ciudad aún no son cubiertas al 100%, por lo que accedí al sitio de ego [http://www.ego.com.mx] para verificar de que hubiera cobertura por dónde se ubica el depto dónde vivo, la busqueda fué satisfactoria y con unas dudas más accedí al soporte en línea para aclarar algunas dudas con respecto a la contratación, cobertura, servicios y paquetes, por lo que despues de unos 20 mins en el chat con la srita. de servicio a clientes sin mayor problema hice la contratación del paquete Value. adquiriendo la renta del servicio por un año, en el cuál me incluirían un Access Point de marca Air Link de regalo --bueno en estos días si algo he aprendido es que nada es regalado en esta vida-- el paquete ya incluía en la contratación un CPE en modo de préstamo durante un año --un CPE es el dispositivo cliente que permite conectarse desde algún lugar a redes WiMax, el CPE es de la marca NextNet Wireless, que si no mal recuerdo NextNet era una empresa ubicada en Europa, y ahora intentando revisar su sitio web para obtener más información, veo que ya es una empresa más de Motorola, Ahora si que ¡¡ Hello Moto!!.. pues hace unos meses adquirió a Symbol Technologies a> creo saber hacia dónde quiero Motorola, en fin.. sigamos-- . Despues de un par de días el equipo me fué envíado a las oficinas y sin pensarlo comence a probar el funcionamiento de esta tecnología, Para esto hice una conexión punto a punto entre el CPE y mi lap, me sorprendió que la conexión a internet funcionara a la primera.. --esa es una buena característica para que un producto y/o servicio tenga éxito, que funcione a la primera--, por lo qué sin hacer más pruebas lo guarde en su estuche esperando la noche para llegar al depto y jugar con la chunche...
Al llegar al depto desempaqué el AP de regalo, un Access Point bastante simple pero con las características necesarias para poder satisfacer mis necesidades de comunicación, pensaba usar otro AP de Linksys un WRT54G que tengo con un firmware hackeado con la versión de dd-wrt para VoIP, pero el de regalo cubrió bastante mis espectativas.. y con solo unos ajustes de "seguridad inalámbrica" y autenticación, conecté el CPE al puerto WAN del AP y mis equipos móviles vía wireless al AP, en 10 mins ya tenía internet de banda ancha inalámbrica en el depto, cubriendo todavía más allá de 50 mts alrededor del patio de la planta baja.
Despues de configurar lo básico inicie con otras pruebas, dándome una grata sorpresa que el servicio de eGo me diera una IP Pública, por las referencias que tenía, eGo ofrecía solo ip privadas a sus clientes a traves de NAT, por lo que no había ni soñado en poner algunos servicios directamente a internet desde my Home, pero con esta posibilidad puse manos a la obra y di de alta servicios de VNC, MP3 y Video Streamming, así como un servicio local de FTP montado, mi servidor de VoIP con Asterisk, 2 webcams USB conectadas a mi servidor linux configurandolas como cámaras IP en linux con sus respectivos puertos TCP, por lo que solo me restaba hacer el enrutamiento de los servicios mediante "Por Forwarding" y aprovechando que el AP tenía la opción de DDNS dí de alta un host dinámico en DynDNS para poder acceder desde cualquier lugar de internet a los servicios de mi red.
Para probar la configuración pedí entonces a un amigo que se encontraba en línea en ese momento que accediera desde dónde se ubicaba a mis cámaras web, a mis streammings de video y mp3 vía IP, así como que se conectara remotamente a mi servicio de VoIP usando el protocolo de IAX, todo funcionó con una sola excepción.. la latencia de la conexión es muy alta por lo que la calidad de conexión a los servicios fúe muy baja, llegando a no poder conectar a diferentes servicios que tengo dentro de mi red casera.. En conclusión puedo decir que el servicio de eGo ha satisfecho mis expectativas y los puntos importantes que recalcaría del servicio en cuánto a sus características técnicas serían las siguientes...
Funciona a la primera..
Cómo es protocolo TCP/IP no depende de drivers o cosas raras por lo que se puede usar Linux, Windows, MacOSX, PocketPC, para conectarse al servicio.
Tiene una IP Pública.!
En promedio el UPLOAD es de 110 kpbs, el servicio indica que debe ser de 120kpbs
En promedio el DOWNLOAD es de 720 kbps, el servicio manifiesta que debe ser de 1024 kpbs
No requiere de Línea de Vista con la Antena de MVS eGO debido a que usa Ortogonal Frecuence para el envío de las ondas herzianas.
No hay bloqueo de puertos TCP ni UDP como en infinitum. Las bondades que me brinda en lo personal son:
Ya no dependo de Telmex, se acabaron los cargos extras por servicios no solicitados, tengo un DID VoIP para México que está configurado en mi PBX Casero por lo cuál puedo tener uno ó más números del D.F. y de cualquier parte del mundo y recibir llamadas dónde quiera que me encuentre, aparte ya no pagaría tanto de larga distancia solo .27 centavos mexicanos por minuto a cualquier parte del mundo dónde hable.
Ahora podría hospedar diversas aplicaciones web que he desarrollado, en mi propio servidor de forma temporal para hacer demos, sin el riesgo de hospedarlas en un sitio rentado y que mi ISP pueda volármelas..
Desde cualquier parte de internet puedo monitorear mediante 2 cámaras usb configuradas con video streamming, el interior y lo que sucede en el exterior del depto sin caros equipos de cámaras IP.
Ahora puedo compartir en todo momento la música que escucho desde mi servidor de MP3 Streamming.
Subir y Descargar archivos mediante un servidor de FTP local.
Mostrar el avance del desarrollo de las aplicaciones para dispositivos móviles a mis clientes sin tener que ir a sus oficinas que algunas veces se encuentran en otro estado de la república mediante el protocolo VNC.
Creo que estos son mis primeros pasos para la casa inteligente que me gustaría y desearía tener en un futuro...
Update:
La latencia sigue existiendo, pero el problema de no conexión a los servicios de mi red fué debido al Access Point AirLink, lo cambié por el WRT54G y todo funciona a la maravilla el performance del WRT54G con el firmware de DD-WRT me ha permitido mayores opciones dentro de mi red local...
Nota Importante:
Este es un procedimiento para instalar Linux a modo de pruebas para y UNICAMENTE Palm LifeDrive, Este método puede eliminar la garantía de tú equipo, así que úsalo bajo tú propio riesgo.
Archivos Requeridos: Liga de Descarga
boot configuration http://git.hackndev.com/releases/20061002-insomnia/linux.boot.cfg
Procedimiento:
1.- Cocoboot
Cocoboot es un Programa PRC para PalmOS que carga el Kernel de Linux en la Memoria del equipo, este programa inicia el proceso de carga de Linux. Instálalo en la memoria de tu Palm Life Drive.
2.- zImage: Linux zImage
El archivo zImage contiene el Kernel de Linux y un pequeño entorno de booteo llamado initramfs que se monta el disco duro de tú equipo y carga el resto del sistema operativo. Necesitaras descargarlo y copiarlo al directorio raiz del disco duro de la Palm Lifedrive
3.- rootfs:Familiar Distribution
Es el sistema de archivos por default que contiene un conjunto de programas para usar linux, actualmente existen diversos entornos de escritorio de Familiar, necesitaras descargar uno y descomprimirlo (puedes usar 7-zip para descomrpimirlo http://www.7-zip.org/ ), en este caso usaremos OPIE. El archivo descomprimido copiarlo al directorio raiz del disco duro de la Palm Drive.
4.- swap file
Espacio SWAP, en algunos Sistemas como windows se conoce como memoria virtual, es un área de datos para almacenamiento temporal que corré algo similar a la memoria RAM. Es opcional, pero mejora la velocidad del equipo, especialmente cuándo se ejecuta un entorno gráfico en la Palm Life Drive como será en este caso.
Descárgalo, descomprímelo en tu pc, y copialo al disco duro en la palm lifedrive.
5.- Boot Configuration
initramfs necesita saber que rootfs cargar, así también define si se usará un archivo SWAP. USa el default y obtenlo de la siguiente URL[http://git.hackndev.com/releases/20061002-insomnia/linux.boot.cfg]. Colócalo en el directorio raiz del disco duro de la Palm Life Drive
6.- Notas muy Importantes.
Ten algunas precauciones antes de querer correr linux.
No presiones el botón reset mientras la PDA esté en suspensión, activa el dispositivo ya sea presionando un botón o tocando el touch screen, entonces puedes reinicar la PDA.
Para regresar de Linux a PalmOS, solo reinicia tú PDA.
La versión de Linux para Palm LifeDrive actualmente no tiene un diver que muestre el status de la batería, si estás cargando tú PDA y sientes un sobrecalentamiento, desconéctalo!.
Este procedimiento unicamentes es para PALM LIFEDRIVE, no intentes realizarlo en algun otro modelo o versión de sistema operativo, ya que podrías ocasionar que tú equipo quede inservible y tengas un nuevo pisapapeles muy bonito y original, pero muy caro.
Finalmente, No soy responsable si seguir este procedimiento causa algún daño a tu PDA.
Seguir este procedimiento puede causar que se pierda la garantía de tú equipo.
úsalo bajo tú propio riesgo. !!
7.- Iniciando Linux
Si la descarga de los archivos fueron correctos y la instalación de los archivos en el disco duro fueron realizados tal como menciono en líneas anteriores, entonces estas listo para correr Linux.
Ejecuta el programa cocoboot en tú Palm LifeDrive.
La pantalla de la PDA mostrará un mensaje diciendo /initrd.fz not found, esto es normal, el initrd esta construído dentro de el archivo zImage por eso no encuentra la inicialización y envia ese mensaje.
Si todo va bien en unos pocos minutos podrás ver corriendo el Entorno Gráfico de OPIE y pedirá que calibres la pantalla. Haz la calibración y empieza a jugar con Linux en tú Palm Life Drive.
8.- EN CASO DE ALGUN ERROR.
EN caso de que el dispositivo se reinicie mostrando un error como "FATAL EXCEPTION" cierra algún programa que este en ejecución en tú Palm, puede ser que algún programa este en modo background (Ejemplo PXAClocker)
Desconecta el cable USB de tú PDA.
Remueve la tarjeta SD/MMC.
Intenta Reiniciar en frío, no olvides respaldar todo antes de hacer el reinicio.
Si tienes alguna duda sobre la instalación puedes obtener más información en el siguiente foro http://hackndev.com/forum
Every day I was programming a module to get of a FTP File Server a Gzip Compressed File of a sqlite database file that have 10Mb size and compressed have 2.5Mb size.
For make it this I did the following: Operating System: Server: Ubuntu Linux Server Client: Windows Mobile 2005 Hardware: MC70 Symbol Technologies Terminal HP iPaq RX3715 Network Connections: MC70:GPRS-Telcel iPaq RX3715: WiFi 802.11b FTP Server: PureFTPd Programming language: C# Library to uncompress: ZlibCE Linux Application to compress: gzip Problem:
My problem was than I had to get a SQLite Database File (near of one hundred thousands records in thirtyfive tables) of a FTP File Server by mean GPRS to one hand held MC70 of Symbol Technologies.
The GPRS connection in México is offered by Telcel & Movistar, but at south of Veracruz State the GPRS connection only is available by Telcel. The GPRS Provider in México offer plans of 50Mb BandWidth for $ 55.00 dlls + 15 percent of tax, then to download my DataBase File of 10Mb file size is the 20% of BandWidth Limit, this indicate tha only I could to download five times to the month. To resolve this Problem that represent money for the company, I did use zlib, an Open Source library compression. Using Zlib with gzip in Linux I can to diminish of 10 Mb to 2.5Mb file size, and in the terminal I can download this file by mean of OpenNetCF.Net.Ftp and Uncompress the file with ZlibCE Library, therefore I saving seventy five percent of bandwith.
In linux you can to create a GZIP File with the following command:
gzip-c MyFile.txt > MyFile.gz
And you can to add more files to your gzip file created :
gzip-c MyOtherFile.txt >> MyFile.gz
And you can to develop a program in C# to uncompress the Gzip File
using System;
using System.Text;
using System.IO;
using OpenNETCF.Compression;
namespace zlibSampleCS {
class Program { staticvoid Main(string[] args) {
UncompressGZFile(@"\Application\zlibce.gz", @"\Application\zlibce.dll"); }
You will need zlibce.dll installed in the directory of your application and also OpenNetcf.Compression.ZlibCE.dll, this dynamic libraries you can get from http://OpenNetCF.com/zlibce/
If You can to get more info you should to visit OpenNetCF Site[http://www.opennetcf.org]
Note: if you see some error of grammar in my writing, put a post and correct to me please.
Pongo a su disposición un Script en PHP que permite exportar archivos CSV a una Base de Datos de SQLite.
Objetivo:
El fin de este script es exportar cualquier archivo CSV, con cualquier longitud de campos y cualquier numero de registros a una tabla específica de SQLite.
Limitantes:
No valida la información contenida dentro del archivo CSV, solo realiza inserts. Pueden implementar alguna función que haga la validación.Pueden descargar el script del Siguiente URL.PHPCSV2SQLite
O directamente desde Source Forge Historia:Este script fué implementado para incorporarlo en un sistema de captura de datos para terminales móviles.Requería extraer 35 tablas de una Base de Datos Legacy y Propietaria con cerca de 100,000 registros en total, por lo que solo era posible extraer la información en CSV .En un inicio mis planes era usar SQL Mobile Server 2005 para Windows Mobile 2005 pero encontré las siguientes liminates que me hicieron optar por SQLite
La base de datos de SQL Mobile Server es propietaria.
No puedo manipular el fichero SDF de SQL Mobile Server en Windows XP, solo en los dispositivos móviles, por lo que la importación solo podría hacerla en las terminales.
El tiempo de importación de los registros CSV en la terminal es promedio de 100 registros por minuto con SQL CE, imagínense importar 100,000 registros.
Puedo hacer replicación entre MS SQL Server y SQL Server Mobile, pero esto requeriria tener las terminales en sitio, aparte el tiempo de replicación sigue siendo muy lento para hacer la inserción de los registros, sin contar las conexiones que debería de hacer para que las terminales lo hagan vía GPRS.
No podría usar replicación primero porque los terminalistas estarían en zonas alejadas conectados vía GPRS, por lo que una replicación sería completamente insegura al intentar transmitir los datos.
Diariamente se requiere hacer esta replicación, y existen más de 20 terminales, lo que se requeriría una licencia del servidor MS SQL Server y una licencia por cada conexión de los clientes, a menos que se tuviera una licencia por procesador.
Con SQLite me evité dolores de cabezas por lo siguiente:
Importar las mismas 35 tablas junto con sus 100,000 registros me toma solo 17 segundos.
No requiero hacer replicaciones o conexiones raras entre las terminales y algun servidor, solo compactar la Base De Datos y transmitir el archivo vía GPRS cosa que me toma 5 minutos.
La librería de la Base de Datos va empotrada dentro del código de la aplicación, por lo que no requiero instalar algún tipo de servidor o aplicación extra más que la mía para que funcione la base de datos de SQLite
Puedo exportar cualquier esquema y datos de una Base de Datos, sí ! hasta tipos Blob.Puedo operar la Base de datos en Linux, Mac OS X Windows, FreeBSD,PocketPC2002, 2003, Windows Mobile 2005, Windows CE, etc.. y existen multiples herramientas y lenguajes para hacerlo.
Es Software Libre.
Es por eso que este script me ayudó a exportar toda la información de la Base de Datos a las PDAs sin dolores de cabeza, y cómo aportación lo pongo a su disposición libremente para que puedan usarlo en algún desarrollo.
Esta es la línea que me permite exportar la información del archivo CSV
$_registros["PRODUCTS"]= FileToTable("./catalogos/PRODUCTS.CSV",$dbHandle,$separador,$delimitador,"PRODUCTS",$_fields_productos,$debug); // $_registros["PRODUCTS"] recibe la cantidad de registros del archivo CSV // FileToTable función que llamo para exportar el archivo // Ruta del archivo CSV // $dbHandle Conector de la Base de Datos SQLite // $separador caracter de separación de campo del archivo CSV // $delimitador caracter delimitador de campo del archivo CSV // "PRODUCTS" nombre de la tabla // $_fields_productos array que contiene la descripción de los campos de la tabla // $debug bandera para mostrar los registros no insertados en la tabla
Comentarios Recientes