Hace unos días estando en Lerdo de Tejada, Veracruz -lugar dónde hacen un arroz a la tumbada muy sabroso-, un amigo me preguntó si conocía de algunos equipos que sirvieran como repetidores inalámbricos, es decir ellos tienen una conexión de intenet de 4 mbps y la querían compartir con varios amigos que están extendidos a los largo de la población, lo que se me ocurrió comentarles rápidamente en base a mi experiencia es que adquirieran Access Points que sirvieran como bridges y que al mismo tiempo pudiera funcinar en modo AP.
Hace tiempo trabajando en una empresa conocí alguno de estos equipos y me tocó configurarlos, los llamados Wireless Switchs, los cuáles tienen Access Ports en vez de Access Points y la configuración es centralizada, estos Access Ports entre sus características es que pueden configurarseles varios ESSID, si no mal recuerdo tenían la opción de meterles hasta 4 ESSID en algunos lo que permitia hacer repetidores inalámbricos, lo malo solo era el costo pues una solución de esta no costaba en ese entonces menos de $ 1,000.00 dólares.
Por lo que una solución como la mencionada anteriormente no era viable para estos amigos que querían realizar una función plenamente con fines de entretenimiento, por lo que regresando aqui a México, D.F., saque un router WRT54G que tenía por ahí empolvándose, previamente ya le había metido el firmware de DD-WRT, la versión 0.23 que salió hace más de un par de años, pero desde entonces no había actualizado el firmware en este equipo, por lo que dándome una vuelta en el sitio de DD-WRT vi que ya tienen la versión 0.24 con su Service Pack 1, por lo que ni tardo ni perezoso la bajé para instalársela.
Antes ya había tenido conocimiento de Redes MESH y WDS(Wireless Distribution System), pero no lo había llevado a la práctica, por lo que despues de bajar la versión 0.24 de DD-WRT pude ver que el AP WRT54G en la configuración del Wireless ya permite trabajar en modo repetidor y modo bridge, por lo que quise hacer una prueba la cuál consiste en lo siguiente:
Conectar el router Linksys en modo repetidor a un Access Point 2Wire Infinitum que está en alguna parte del edificio dónde vivo.
Aqui es importante usar el mismo ESSID, Canal y llave WEP ó WPA que tiene el Access Point "padre" por así decirlo, de forma que hay que conectar el WRT54G como cualquier cliente inalámbrico con la salvedad que en la configuración hay que decirle que está trabajando en modo repeater bridge y no en modo AP o Cliente(ver figura de abajo).
Posteriormente agregar una interfaz virtual inalámbrica en el Router, esto hará que se vea un AP más al gestionar las redes inalámbricas y de ahí poder conectarnos.
Despues solo basta ir a la parte de Wireless->Wireless Security->Virtual Interfaces wl0.1 SSID [phylevn.mexrom.net]
Para poder configurar la parte de seguridad de la red inalámbrica.
Ya que quede todo esto hay que guardar las configuraciones y aplicarlas.
Despues solo ir a la parte de Status y ver como está la parte inalámbrica ahí debería verse como el WRT54G se conecta en este caso al 2Wire Infinitum y también como un cliente se conecta a la interfaz virtual del WRT54G que trabaja en modo AP.
Configuración del WRT54G en modo repetidor y también configurando la interfaz virtual del WRT54G.
Gestionando las conexiones realizadas por el WRT54G, en este caso ya conectado al 2Wire Infinitum y también se observa como un cliente se conectó a la red inalámbrica phylevn.mexrom.net que es la interfaz virtual del WRT54G.
Lo interesante de todo esto es que se realiza en un par de minutos, sin gastar tantos pavos que con soluciones propietarias como las de Symbol Technologies ahora Motorola.
Solo resta agradecerle a la comunidad de desarrollo de DD-WRT y al Open Source en general por permitir esto y muchas cosas más.
Pongo en http://files.mexrom.net código PHP para ejemplificar el uso de Ajax, el código muestra operaciones básicas como son Insercion, Actualización, Borrado y Listado de Datos sobre alguna Base de Datos haciendo uso de ODBC.
Para obtener el código entrar al siguiente url: http://files.mexrom.net
Login:invitado
Password:invitado
Acceder al directorio Ajax_demo y descargar el archivo ajax_demo.zip
Descomprimir el código de ajax_demo.zip en algún directorio del servidor web.
Posteriormente se requiere crear la tabla siguiente:
CREATETABLE USUARIOS (
CLAVE_USUARIO VARCHAR(10),
NOMBRE VARCHAR(120),
LOGIN VARCHAR(10),
PASSWORD VARCHAR(10),
ZONA VARCHAR(10),
FECHA_CONEXION VARCHAR(10),
HORA_CONEXION VARCHAR(10), STATUS VARCHAR(1),
ADMIN VARCHAR(1), PRIMARYKEY(CLAVE_USUARIO) )
Esta tabla puede crearse en cualquier manejador de base de datos que tenga un conector ODBC, de tal forma que será necesario crear una conexión ODBC a la base de datos dónde se creo la tabla.
Posteriormente solo habilitar el soporte ODBC en PHP, en caso de que se use Wamp Server en el ícono de Wamp Server ubicado en la barra de tareas de Windows seleccionar PHP->PHP Extensios->PHP_PDO_ODBC.
Ya que se tenga habiltado el soporte ODBC, entonces entrar al archivo conexion.php y cambiar los valores de conexión ODBC para acceder al servidor de Base de Datos.
Con esto ya es posible probar las bondades de Ajax.
Dar de alta manualmente un usuario con el valor de admin = *(asterisco) para poder acceder a la aplicación
Ó descomentar la línea 17 del archivo index.php
Espero le pueda servir a alguien, cualquier duda pongan un comentario.
Hace algunas semanas adquirí una cuenta de Rapidshare.com, el cuál es un servicio que te permite descargar infinidad de archivos sin límite de descarga y con un ancho de banda bastante rápido, por lo que decidí aprovecharlo para obtener algunos archivos, en Windows he usado Free Download Manager, pero en el caso de Linux el gestor de descargas de Firefox no me convence, al igual que Kget que viene integrado dentro de KDE, esto ya que si por alguna razón se pierde la conexión también pierdo todo el avance de la descarga realizado, por lo que buscando un Administrador de Descargas encontré WebDownloader for X en su versión 2.5.
Web Downloader me permite ir agregando URL de archivos a descargar que los va poniendo en una cola, de tal forma que en la configuración le digo cuántos puede ir descargando simultáneamente, si en algún momento se interrumpe la conexión, Web Downloader guarda los datos para poder continuar(Resume) la descarga en el porcentaje que se quedó en la última sesión.
Un problema que tuve con WebDownloader es que en la configuración le indicaba que los archivos me los pusiera en el directorio /downloads, directorio al que le asigne permisos de escritura para mi usuario, pero por alguna razón Web Downloader siempre me iba guardando los archivos descargados en un subdirectorio de mi dir HOME, esto no me gustó ya que en mi HOME no tengo mucho espacio, ya que los dir /(root) /boot /var /usr /home y swap los tengo en particiones independientes, por lo que tuve que eliminar el directorio MyDownloads que crea directamente Web Downloader, para poder hacer un link dinámico de /downloads a ~/MyDownloads por lo que de esta forma Web Downloader descargaba en MyDownloads que en realidad es /downloads .
Con esto ya pude seguir aprovechando los beneficios de rapidshare.com...
Llevo un par de meses integrando en un servidor Linux múltiples herramientas multimedia libres para la creación de un Centro Multimedia con capacidades domóticas.
Entre las que he probado y de la que hablare ahora es de Motion. Motion Es una utilería desarrollado bajo una licencia libre que permite detectar movimientos en cámaras web usando video4linux como interfaz para conexión con Dispositivos de Video en linux tales como cámaras web.
Lo interesante de Motion es que permite usar cualquier Cámara Web compatible con Linux para hacer VideoStreaming esto indica que podemos ver la cámara web a traves de una página web, por lo que monitorear la cámara se puede hacer desde cualquier parte del mundo siempre y cuándo la computadora dónde esta conectada la cámara estuviera conectada a una IP Homolagada, pero lo mejor de Motion es que permite configurarse para que cuándo detecte movimiento capture las imágenes y las guarde en un directorio en formato Jpeg, por lo que su uso se extiende aun más para lo que es VideoVigilancia.
Por default Motion corre en modo aplicación, pero puede configurarse desde su archivo de configuración que está en /etc/motion/motion.conf para que corra en modo demonio por lo que siempre estará corriendo en background.
Motion por default abre el puerto 8000 para que desde otras partes vía una página web se pueda monitorear la cámara web siempre y cuándo la opción de webcam_localhost esté en off, el puerto también es posible configurarlo.
Algo que me llamó mucho la atención de Motion es que es muy configurable a traves de /etc/motion/motion.conf, en dónde leyendo mediante man la documentación me entero de que tiene un trigger on_event_start que permite ejecutar alguna aplicación al momento de detectar movimientos, de tal forma que aqui solo basta usar la imaginación para poder hacer algo interesante tal como es por ejemplo mendiante Asterisk alertar con una llamada telefónica a personal de seguridad de un movimiento detectado.
También algo que me agradó de TextMotion es que guarda imágenes cuándo se detecta movimiento, asi como también tiene la opción de grabar un video de cuándo se detecta el movimiento y mejor aún de mostrar el área dónde se está registrando el movimiento..
Tambien es posible configurar el número de frames necesarios parapoder considerar un evento de movimiento.
Aquí pongo la configuración que uso para usar Motion como un detector de movimiento, con esta configuración guardo videos en formato avi con el codec msmpeg en el directorio default /var/lib/motion/snapshots y también desactivo la opción de que genere archivos JPG o PNG de movimiento, configuro a Motion para que muestre el video usando una calidad de 320x240 por cuestiones de rendimiento y ejecutando al momento de que se detecte un movimiento un script en PHP que es un Agi de asterisk que me permite marcar a una extensión telefónica.
# Minimal motion example config file provided by the # Debian motion package - for basic webcam operation. # # You most certainly want to investigate # /usr/share/doc/motion/examples/motion-dist.conf.gz # for further configuration options. Also, refer to the # motion man page and /usr/share/doc/motion/motion_guide.html # for detailed information on configuration options.
daemon off
quiet on # You may very well need to change this (check with 'dmesg' # after plugging in your webcam).
videodevice /dev/video0 # Image size in pixels (valid range is camera dependent). #Si se tiene una cámara que soporte mayor calidad como por ejemplo 640x480 entonces cambiar los valores, por cuestiones de rendimiento he dejado los valores por default aqui
width 320
height 240
framerate 25 #calidad con que guardará las imágenes JPEG, en cuestiones de seguridad a veces es bueno darle un 100% asi se tendrá una imagen más tínida, aunque esto requerirá mayores espacios
quality 75
auto_brightness off # General threshold level and noise threshold # level (for distinguishing between noise and motion).
threshold 4500
noise_level 64 # Initial brightness, contrast, hue (NTSC), and saturation. # 0 = disabled (valid range 0-255).
brightness 0
contrast 0
saturation 0
hue 0 # Encode movies in real-time (install ffmpeg before enabling). #default ffmpeg_cap_new off #ffmpeg_cap_new off #Habilitar esta opción para grabar videos cuándo haya movimiento
ffmpeg_cap_new on # Codec to be used by ffmpeg for the video compression. # Supported formats: mpeg4, msmpeg4. #se configura el codec a usar
ffmpeg_video_codec msmpeg4 # Target base directory for pictures and films (you may need # to change this (or change its permissions) depending on # which system user runs motion).
target_dir /var/lib/motion/snapshots # Define a port number (e.g. 8000) to enable the mini-http server. # 0 = disabled.
webcam_port 8000 # Set to 'off' to allow anybody (not just localhost) to view the # webcam via the mini-http server (http://hostname<img src="plugins/Emoticons/images/tongue.png" border="0" alt="tongue.png " width="16" height="16" />ort). #webcam_localhost on
webcam_localhost off
webcam_quality 70
webcam_maxrate 8 #Configuracion personalizada #Puerto para entrar a la configuracion
control_port 8001 #Usuario y password para acceder a la configuracion
control_authentication motion:m0t10n #Numero de frames requeridos para poder lanzar el evento de movimiento #minimum_motion_frames 10 #Comando que se ejecuta al detectarse movimiento
on_event_start "php -q /var/lib/asterisk/agi-bin/makeCallwithAsterisk.php" #Esta opcion siempre generaria imagenes cada cierto tiempo aunque no haya movimiento #output_all on #Muestra la región donde se localiza el movimiento locate on #muestra un texto en la esquina inferior izquierda
text_left "phylevn.mexrom.net" #aumenta el tamano del texto
text_double on #se asegura de que haya movimiento
roundrobin_skip 2 #desactivamos la opción de que guarde archivos de imágenes
output_normal off #indicamos que guarde los archivos en formato NTSC para el caso de Mexico
norm 1
Existen otras aplicaciones para monitoreo de cámaras tales como webcam-server, pero a mi gusto Motion por mucho se lleva las palmas.
Para mis prubeas he usado una cámara web Creative Live! Cam, la cuál adquirí por $ 180 pesos en la plaza de la computación.
Para poder conectar esta cámara en Ubuntu Linux 7.10, use el driver ov51x-jpeg-1.5.9. Es posible usar la cámara también para el AMSN y otros programas que hagan uso de Video4Linux.
En el anterior post puse información sobre una Rockola que hice en un rato de ocio allá en Oaxaca, ahora he puesto el código en SourceForge.net de la Rockola Web2.0 como le he llamado al proyecto.
El código puede descargarse de la siguiente URL
http://www.flickr.com/search/?q=Rockola&w=56262362%40N00
Espero pueda servirle a alguien el desarrollo y cualquier duda, comentario, sugerencia, queja ó demas siéntase libre de contactarme en fileinleon arroba gmail punto com
Hace unos días estando en Oaxaca visitando a mi familia y degustando de los panes de muertos, me preguntó mi papá si podía instalarle un programa para reproducir música, esto ya que mi padre rentó la licencia del Bar "La Chinita" que allá en la Ciudad de Oaxaca está enfrente de la Tienda del Issste de la Calz. Madero, probando algunas aplicaciones como Amarok, Esperanza con XMMS2, Mplayer, Xine, XMMS, Juk, Jukx, entre otros se me hicieron demasiado complejas para poder usarlas como Rockolas, por lo que una noche caminando por la estación del ferrocarril se me ocurrió la idea de desarrollarla usando una interfaz web, una base de datos empotrable al código como sqlite, y una utilidad que reprodujera la música sin que se requiriera interfaz gráfica como lo hace XMMS2, por lo que llegando a la casa de mis padres empecé con las primeras líneas de código.
El resultado final fué el siguiente:
Características de la Rockola:
Lectura recursiva de archivos MP3 de los directorios asignados en la configuración.
Extracción de información de Artista, Titulo, Album y Genero de los archivos MP3 encontrados.
Almacenamiento de la información en la base de datos SQLite (SQLite no requiere configuración adicional)
Clasificación de canciones MP3 por Artista, Album ó Género.
Subclasificación de canciones MP3 por Alfabeto.
Busqueda personalizada de canciones por artista titulo, album ó género.
Listado de MP3 por Artista, Album ó Género.
Muestra información detallada de canción MP3 seleccionado.
Agrega MP3 a la cola de reproducción de XMMS2.
Limpia la cola de reproducción de canciones ya reproducidas.
Interfaz web.
Modo pantalla completa(Fullscreen) mediante Firefox y r-kiosk.
Componentes Ajax para clasificación de información y para todo el manejo de la interfaz.
Teclado virtual para busqueda personalizada de canciones.
Muestreo de botones de alfabeto en modo botón o imagen.
Requerimientos:
Este viernes 24 y sábado 25 de Octubre del 2008 estuve en el ENLi presentando un par de charlas sobre Fotografía y Telefonía de Voz sobre IP con Asterisk, el evento del ENLi fué un éxito había asistentes y ponentes de todas partes. Llegué a Puebla el día viernes, venía de Oaxaca ya que estuve ahí unos días con mi familia, por lo que salí de Oaxaca a la 1 am para llegar a Puebla a las 6 a.m, como aun me faltaba terminar mi presentación sobre Fotografía Digital en Linux, me senté en el área de comida de la CAPU(Central de Autobuses de Puebla) aprovechando que por ahí había redes wifi con internet, ya por hay de las 9 a.m. tomé un taxi para la UPAEP universidad dónde se llevó a cabo el Encuentro Nacional de Software Libre, llegando a las 9:30 me registré ya que a las 10:00 A.m. tenía un taller de J2ME al que me inscribí para saber más acerca del tema.
Despues fué la comida de los ponentes que fué en un restaurant con un buffete de comida china bastante bueno, terminando más que satisfecho y con ganas de una siesta, pero tenía que dar una charla sobre fotografía digital en linux, la charla salió bien me falló al último la generación de un HDR con QTPFSGUI, pero los demas ejemplos con GIMP y UFRaw salieron bastante bien.
Despues de la charla anduve vagando por la UPAEP y ya más tarde me retiré al hotel. Ya como eso de las 11:00 P.M fui para el antro Toushé dónde se llevaría acabo la fiesta del ENLi, pero al llegar lo noté muy vacío por lo que no me quedé más de 10 minutos y tomé de regreso un taxi para el hotel.
Ya al día siguiente del día sábado me tocó dar otra charla más técnica, Telefonía de Voz sobre IP con Asterisk, por lo que me dirigí a la sala dónde tenía que presentarla, ya estando ahí coloqué todas las chunches que usaría, ATAs, Teléfonos, Router, bluetooth, Móvil, etc., a media plática se acercó el Tacvbo y pensé que haría una promoción sobre sus equipos, pero cuál fué mi sorpresa que no solo haría publicidad para la empresa en la que participa Neocenter quién patrocinó al ENLi, si no también me regaló un teléfono de Voz sobre IP Aastra 480i el cuál viendo sus características es bastante bueno, por lo que salí rayadísimo del ENLi.
Por lo que no me queda más que agradecer a los asistentes a mis charlas, al ENLi, a los organizadores y a NeoCenter que se puso la del Puebla con el teléfono de Voz sobre IP .
Hace unos días adquirí un teléfono Nokia 3500 en plan prepago con Movistar, ya que el plan de renta que tengo con Telcel se me está haciendo cada vez más caro, lo lindo de este teléfono no solo fué su precio de apenas $ 900.00 si no también sus características como soporte de J2ME, Bluetooth, USB y en Linux es posible enviar SMS a traves de Gnokii, por lo que aprovechando estas característica me he puesto a jugar con esta chunche haciendo mis pininos con java y también unas pruebas de bluejacking que dejé pendientes que más tarde postearé aquí, pero ahora este post va relacionado con el envío de SMS usando GNokii a traves de una página con PHP mediante pipes.
Requisitos:
PHP
Apache
Gnokii
Algún teléfono móvil, los Nokia funcionan bien con Gnokii, de preferencia USB.
El proyecto aquí comentado puede bajarse de la siguiente url: http://files.mexrom.net
projects / sms / sms-gnokii-001.zip
login: invitado
password: invitado
Básicamente en Ubuntu Linux instalar Gnokii es simple:
Ya teniendo listo Gnokii, en el caso del Nokia 3500 editar en modo super usuario el archivo
sudo scite /etc/gnokiirc
Y ahí poner lo siguiente
[global]
port = /dev/ttyACM0
model = AT
connection = serial debug=on
Ahora solo basta poner el siguiente script en un directorio web:
<?php /**
*
* Script para enviar SMS desde una pagina web usando PHP como lenguage script y Gnokii como interfaz de conexión entre el teléfono y la aplicación
*
* Desarrollado por Filein Rommel León Méndez
* Script liberado bajo la licencia GPL
*
*/
function ValidateNumber($number){ returneregi_replace("[^0-9]","",$number); }
?>
De ahí solo basta ir a Firefox al directorio dónde se instaló el script para ejecutarlo:
http://localhost/sms/
Dar un número de teléfono y mensaje a enviar.. si todo salió bien debería enseguida verse el mensaje enviado desde la página, en el teléfono destino.
Im starting a project to integrate many technologies in Linux and to create a Home Multimedia Center, using Asterisk VoIP, Video and Audio players, Bluetooth devices, IrDA devices and Remote Control, Voice Recognition and Text to Speech, Home Security, Motion Detection and another things that I want concentrate in a PC with Linux.
For motion detection I will use a WebCam, then I bought a Creative Webcam, the model is Creative Live! Cam Chat, searching info in internet about drivers for creative webcam, I found one open source driver in creative website http://opensource.creative.com/webcam.html, in this webpage I cannot see the model, but running lsubs -l in linux I could get the Vendor Id : 0x041E and Product ID : 0x405F of the WebCam, then with this info searching in the drivers webpage of Creative I could to know that WebCam Vista has the same values that Live! Cam Chat.
Result of the search WebCam Vista (D) VF0330 0x041e 0x405f http://www.rastageeks.org/ov51x-jpeg/index.php/Main_Page
Previously you will need load the videodev module
modprobe videodev
Only rest load the module
modprobe ov51x-jpeg
And with camorama or another app for webcams you will can see the image of your webcam.
La semana pasada fuí a Guadalajara, Jal., a entregar un proyecto que me gustó mucho desarrollar, ya que en este proyecto que duró varios meses de desarrollo, se mezclaron varias tecnologías por lo cuál el aprendizaje y la experiencia fué grata pues el desarrollo se comenzó desde cero.
El proyecto consistió en hacer módulos de cotizaciones, gestión de cortes de pedidos, devoluciones y generación de facturación electrónica en base al estándar de SAT y generación del sello digital, xml y cadena originalpara dispositivos móviles con PocketPC 2003 y Windows Mobile 2005, este proyecto se desarrolló como complementó a un ERP existente que hace uso la empresa Grupo Venta Internacional S.A de C.V., una empresa especializada desde 1990 en el suministro de equipo y material quirúrgico para Cirugía Plástica y Reconstructiva, Neurocirugía, Cirugía Maxilofacial, Traumatología, Otorrinolaringología y Antienvejecimiento.
La aplicación en el dispositivo móvil permite descargar catálogos de la base de datos del ERP, a la cuál se accede vía GPRS desde algún lugar dónde haya cobertura de telefonía celular GSM/GPRS, por cuestiones de seguridad se hizo a traves de un tunel VPN, para lo cuál se implementó un servidor VPN libre por software el cuál hace la función de redireccionamiento entre la red local de la empresa y la red VPN de los móviles.
Ya descargada la información se almacena en una base de datos SQLite versión 3 la cuál tiene un rendimiento bastante eficiente en la terminal portátil, y a partir de ahí se pueden realizar cotizaciones en modo batch, no requiriendo tener conexión GPRS con el servidor para poder generar las cotizaciones de los clientes, y así en algún momento enviar la información al servidor para que las cotizaciones generadas sean atendidas de forma inmediata por el personal de Servicio a Clientes y asi rápidamente convertirlas a órdenes para luego surtirlas.
Otro proceso que permite realizar la terminal portátil es el corte de pedidos que básicamente es llevar un control sobre los productos pedidos por los clientes, de tal forma que es posible generar devoluciones, registrar que productos mantiene el cliente y que productos va a facturar, en el caso de facturación aquí se hace uso de facturación electrónica que está basado en el estándar legal de SAT(secretaría de Administración Tributaria) en México. De tal forma que la terminal al momento de estar facturando los productos hace una conexión a un webservice para poder extraer el sello digital en base al resultado de la cadena original y del XML generado previamente, para luego poder ser impresa la factura en una impresora portátil Zebra RW420 mediante Bluetooth.
Lo interesante del desarrollo fué hacer las conexiones remotas y hacer que toda la información se guardara en las correspondientes tablas del ERP, ya que hay muchas dependencias en varias tablas por lo que había que llevar un control minucioso sobre los registros actualizados en el ERP. También fué interesante realizar las conexiones VPN desde un móvil a un servidor OpenVPN usando conexiones GPRS, así como también la impresión de reportes usando conexiones bluetooth.
Detalles del desarrollo:
Comentarios Recientes