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
Por motivos de seguridad y requerimientos de conexión de un sistema desarrollado para realizar cotizaciones en línea, fué necesario conectar unas Terminales Móviles Inalámbricas que se conectan a Internet usando una red GPRS a una red VPN en dónde se encuentra el servidor de Base de Datos.
El procedimiento para conectar una Terminal a una red VPN es relativamente sencillo para lo cuál describo a continuación el procedimiento a seguir.
Primero conectar la Terminal a la red GPRS o WLAN según sea el caso y modo de conexión.
1. Del Menú Inicio, Seleccionar Settings, y presionar la pestaña Connections.
2. Seleccionar el ícono Connections, y posteriormente seleccionar la pestaña Advanced.
3. A continuación presione el botón Select Network. En la parte inferior viene una leyenda que dice "Programs that automatically connect to a private network should connect using:", Seleccione el botón Edit. Y luego seleccione la pestaña VPN.
4. Seleccione el botón Nuevo. Entonces aparecerá una caja de diálogo para crear la Nueva Conexión. En el campo Nombre asigne un nombre a la Conexión. Este valor no afectará la configuración de la conexión solo es un dato informativo.
5. En el campo de Nombre de Host introduzca el nombre del dominio o dirección IP del servidor VPN
6. Si usa una conexión tipo IPsec que son las estándar para conexiones VPN entonces seleccione el botón radio IPSec.
7. Una vez que seleccione el metodo de autenticación verá una leyenda como "Authenticate IPSec/L2TP connections using:" aquí seleccione el tipo de llave a usar, generalmente es Pre Shared Key, PSK es un string introdúzcalo en el campo correspondiente.
8. Presione el botón continuar..
9. Si su servicio VPN requiere un login y un password introdúzcalo en los campos "username" y "password" correspondientemente. Si usa un dominio introdúzcalo en el campo "domain".
10. A continuación presione la opción "Advanced".
11. Si el servidor VPN no le asigna una IP, seleccion la opción de "Use Specific IP Address" e introduzca la IP Fija que le corresponde.
13. Si usa direcciones IP Dinámicas elija "User server-assigned addresses".
14. Presione "OK", Y luego el botón "Finish".
14. Estarás de vuelta a la lista de perfiles de VPN activados en "My Work Network". Presiona el botón "OK".
15. Bajo la opción de "Programs that automatically connect to the Internet should connect using:", selecciona alguno diferente a "My Work Network".
16. Bajo la opción de "Programs that automatically connect to a private network should connect using:", selecciona "My Work Network".
17. Presiona "OK"
18. En seguida presaiona el botón "Exceptions".
19. En "URL exceptions:", Presiona el botón "Add New URL...".
20. En el campo abierto introduce lo siguiente "*.*/*" (un asterisco, un punto, otro asterisco, una diagonal, y otro asterisco).
21. Presiona "OK", Y nuevamente presiona "OK".
22. Selecciona el ícono "Network Cards"
23. Debajo de la siguiente etiqueta "My network card connects to:" existe una lista, selecciona la opción "The Internet".
24. Presione "OK".
Realizando la Conexión.
Selecciona "Connect VPN" en el perfil de VPN Configurado.
Automáticamente debería conectarse al servidor VPN.
Prueba hacer un Ping con alguna utilería y deberías obtener respuesta de los equipos remotos conectados a la red local dónde se encuentra la VPN.
Una pregunta que se hace comunmente cualquier desarrollador de Conmutadores de VoIP que use el proyecto Open Source de Asterisk es ¿ Cuál es el mejor Hardware para usar junto con Asterisk ?
Es una pregunta que podría parecer simple de responder, pero que entrando en detalle puede resultar complicada, incluso hasta puede llegar a confundir al desarrollador novel.
En un principio podemos tener como elección la marca de la compañía creadora de Asterisk, que es la empresa Digium, esta empresa lleva el proyecto de Asterisk de la mano de Mark Spencer el genio que ha desarrollado este fabuloso proyecto Open Source.
Pero no solo existen en el mercado tarjetas Digium, si no que también en los 2 últimos años han aparecido nuevas marcas de hardware compatibles con Asterisk que han entrado a competir directamente contra Digium, tales como las siguientes:
Aculab Cards http://www.aculab.com/
Dialogic Cards http://www.dialogic.com/
PIKA Cards http://www.pikatechnologies.com/
RHINO http://www.rhinoequipment.com/
Sangoma http://www.sangoma.com/
ZapMicro http://www.zapmicro.com/
OpenVox http://www.openvox.com
Algunas tarjetas trabajan más transparentemente y tienen mejor soporte de drivers que otras. Por ejemplo he escuchado muy comúnmente en diferentes foros de internet que es complicado obtener Drivers Dialogic para trabajar con Asterisk, también he escuchado que los drivers Dialogic fueron licenciados para trabajar solo con Asterisk Bussiness Edition. Es también sabido que Fonality patrocinador del proyecto trixbox fué uno de los clientes más importantes de Digium, Fonality compró más tarjetas Digium que nadie más en los inicios del proyecto Asterisk, sin embargo Fonality tomó despues la desición de irse con Sangoma otra empresa manufacturesa de tarjetas de VoIP compatibles con Asterisk, una de las razones del cambio fué que Sangoma fué mucho más barato que Digium hasta hace un tiempo, aparte también de que solo el hardware de Sangoma soporto la cancelación de eco por hardware característica que provee mejor calidad de sonido en ls comunicaciones de Voz sobre IP. Uno de los comentarios del CEO de Fonality Chris Lyman acerca del cambio de Digium a Sangoma fué que ellos hicieron el cambio hace un par de años debido a que estaban cansados de los problemas con el soporte de hardware de Digium. Actualmente su 'appliance' de Fonality que es TrixBox vienen con hardware de Sangoma por default aunque se puede adquirirlo en su sitio web con hardware preinstalado de Digium.
He oído por cierto también varias historias de terror sobre Asterisk y tarjetas Digium, historias de usuarios intentando instalar apropiadamente las tarjetas Digium y se encuentran con problemas de interrupción de hardware.
Con respecto a Sangoma en los últimos años ha venido en aumento su porcentanje en ventas, hace unos días anuncio su porcentanje de ganancias que mostró un 24% en el primer cuarto del 2007 y un 56% con respecto al año anterior. Estas ganancias se deben a que Sangoma se ha colgado del éxito de Asterisk y debido a su alta funcionalidad ha logrado el éxito que ahora tiene.
OpenVox es una compañía china que ofrece actualmente tarjetas que son clones de Tarjetas Digium, incluso lo clon se puede ver hasta en el nombre de las tarjetas. OpenVox usa las mismas referencias de diseño de hardware que Digium, incluso son casi identicas, pero también sufren del problema de interrupciones de hardware, aunque OpenVox es 20% mas barato que las tarjetas de Digium. Otra compañía existente es ZapMicro que al igual que OpenVox es un clon de las tarjeatas Digium de Asterisk.
CyLogistics es un 'mayorista' en EU de equipos de VoIP, actualmente está ofreciendo para sus distribuidores tarjetas de marcas como OpenVox, Sangoma, PIKA y Digium. Aunque se especula que Digium está rechazando distribuidores que también ofrecen OpenVox, aunque al parecer cyLogistics pasó esa restricción de parte de Digium, y debido a esto también muchos distribuidores no se muestran tan contentos con respecto a la política de Digium de ser bloqueados si distribuyen equipos OpenVox.
Con respecto al software aunque existen aplicaciones de terceros basados en Asterisk, Digium sigue siendo por esa parte el lider, aunque con respecto al hardware los chinos le han disminuido considerablemnete sus ganancias con sus tarjetas clones pero de bajo precio, al igual que Rhinos y Sangoma que le están siendo gran competencia en cuánto a hardware de alto rendimiento.
En conclusión si la pregunta fuera que Marca de Tarjeta de VoIP elegiría para instalar un Conmutador de Voz Sobre IP con Asterisk, mi respuesta sería igual a la de Tom Keating CTO VP, Fundador de TMC Labs que menciona algo com esto: Pensando con el corazón y por amor al Open Source me inclinaría por Digium sobre todo por todo el trabajo y desarrollo que ha realizado en el proyecto de Codigo Abierto Asterisk... Pero pensando técnicamente me inclinaría sin dudarlo con Sangoma, ¿ porqué ? Porque tiene características importantes que le dan mayor ventaja sobre Digium y sus clones, mejor soporte, drivers, funcionalidad, electrónica, incluyendo un bajo costo y mejor manejo de las interrupciones de hardware, lo que facilitaría una instalación de Asterisk librando de problemas extras a la implementación misma.
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
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...
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.
Hace unos meses durante el análisis de una aplicación que está corriendo ya ahora en Dispositivos Móviles con Windows Mobile 2005 y desarrollada en C# con Visual Studio, estuve buscando información sobre diversas bases de datos que corrieran en Windows Móbile 2005 y tuvieran bastantes fortalezas como :
Poca Administración debido a las características de los Dispositivos Móviles.
Soporte de SQL Stándar.
MultiPlataforma para poder desarrollar interfaces vía Web así como aplicaciones de escritorio tanto en Linux, Windows u otra plataforma sin tener que hacer procedimientos de migración.
Mayor Velocidad en ejecución de Querys.
Herramientas de Monitoreo multiplataforma.
Portabilidad, esto significaría que yo pudiera procesar un archivo de la base de datos en un sitio remoto vía web con Php, Python, Perl, java o alguna otra herramienta, descargarla al dispositivo móvil y operar la base de datos sin tener que hacer un proceso de importación o migración en la PDA.En la búsqueda encontré un BenchMark mostrado por PocketMagazine en la siguiente URL http://www.pocketpcmag.com/_archives/Aug06/databases.aspx
Los archivos SDF de la Base de datos de SQL Server CE no pueden ser consultados cómo tal en Windows XP ya no se diga en otras versiones anteriores de Windows.
Para importar un catálogo necesitamos hacer una replicación de la BD, la cual el servidor debe ser MS SQL Server.
Para poder hacer la replicación de cada terminal con el servidor, se requiere una Licencia por cada dispositivo móvil, esto si no se cuenta con una licencia por Procesador. El servidor para Windows Mobile no tiene costo.
La replicación de MS SQL Server a SQL Server CE implicaría tener una conexión directa Vía Active Sync o TCP/IP al servidor, aparte que la importación de las transacciones consume 100 registros por minuto, lo que importar un catálogo de 30,000 registros nos llevaría 300 Minutoslo que equivale a tener 5 horas al operador esperando apróximadamente.
El footprint de la base de datos va de 2-3Mb por lo que la capacidad de almacenamiento en la terminal portátil disminuiría considerablemente.
Exportar la información de la PDA al servidor requiere otra replicación y conexión al servidor MS SQL Server.
El desarrollo bajo SQL Server CE es propietario y solo se puede realizar desde Microsoft Visual Studio .Net 2003 ó 2005.
La Base de datos puede ser creada en Linux, Windows, Mac, FreeBSD, etc.. y con solo copiar el archivo a la terminal vía Active Sync, podemos usarla en la PDA sin ningún problema, una copia de un archivo con cerca de 500,000 registros en 35 tablas diferentes nos costaría aproximadamente 1 minuto.
Podemos procesar el archivo de SQLite con diversas herramientas, por ejemplo que una terminal se conecte a un Servicio Web, en dónde se tienen catálogos de clientes, proveedores, productos y otros catálogos, la terminal podría conectarse y descargar esa base de datos y tener todo el esquema y datos en la PDA en tan solo segundos.
SQLite soporta Querys de SQL Estándar lo que la hace muy poderosa al realizar las consultas para diversos procesos.
No tiene costo pero mejor aún es Software Libre.
El desarrollo con SQLite puede ser realizado en diversas herramientas tanto propietarias como libres Véase la multitud de opciones Aquí
Despues de este breve análisis añado al BenchMark de Pocket Magazine otras características a considerar de SQLite interesantes si no es que únicas en comparación a otras Bases de datos tanto libres como propietarias corriendo bajo Dispositivos Móviles.
Aquí un comentario de Robert Simpson desarrollador del Ado Net Provider para SQLite y Visual Studio 2005 .Net y el Compact Framework 2.0 de Microsoft.
"SQLite is faster than SQL Mobile, and SQLite's database files are smaller.In a couple of simple tests inserting, selecting and updating an Int64,SQLite was more than 10x faster. Inserts/updates that took minutes in SQLMobile took seconds in SQLite." http://phylevn.mexrom.net/data/files/SQLitebyRobertSimpson.txt
Pues regresa nuevamente Linux World Expo a México..
Un evento que trae las soluciones e innovaciones tecnológicas alrededor de Linux y del Software Libre en general.. Hace un año entre sus invitados estuvo Miguel de Icaza, un mexicano que ha puesto la bandera de México en el más alto nivel del Software en el Mundo fundador de GNOME, BONOBO, MidNight Comander, y ahora la plataforma Mono para desarrollo de software..
Aparte del Linux World Expo estará también Voice, Video & Visión VON qué trae lo mejor de las tecnologías de Voz y Video, es la segunda vez en que viene a México, y la 11o año que se lleva a cabo.. Al venir Expo VON a México, indica que nuestro pais ha avanzado en la convergencia tecnológica..
Si alguien está interesado en asistir puede ver más información en http://www.linuxworldexpo.com.mx/
Lista de Conferencias con respecto a Linux linuxworldexpo.com.mx/info_confe.htm
Lista de Conferencias con respecto a Voz y Video http://www.expocomm.com.mx/vonmexico/info_vonconfe.htm
y ojalá podamos vernos por ahí...
Comentarios Recientes