Investigando acerca de como implementar e integrar la tecnologia domótica en un proyecto personal me metí a buscar información sobre protocolos para control de dispositivos caseros desde Linux, para ello he encontrado los protocolos X10, KNX/EIB, entre otros, de los cuáles X10 me pareció muy interesante aparte que es un estándar de fácil implementación y que tiene soporte en Linux a traves de diversos proyectos.
X10 es un protocolo que permite enviar y recibir señales a traves de las líneas eléctricas, de tal forma que existen "appliances" de diversas marcas que usan el protocolo X10 para recibir y enviar señalizaciones con lo que es posible enviar desde una PC una señal de apagado, encendido usando el protocolo X10 a traves de un convertidor de señal que convierte la información enviada a señales electricas que pasan por la red eléctrica hasta llegar al destino especificado para prender un aparato, apagarlo, aumentar su velocidad ó brillo.
Los appliances es posible configurarles un ID que se basa en un identificador de casa y un identificador adicional de 5 bits con los cuáles es posible identificarlos dentro de una red X10 casera, así es posible enlazarlos y desde un convertidor Serial-PLC es posible enviar diversas señalizaciones, de tal forma que es posible enviar el encendido y/o apagado de un dispositivos específico en cierto tiempo.
Lo interesante de esta tecnología es que con los convertidores de PC a PLC(Power Line Communication) es posible hacer infinidad de aplicaciones, una de ellas es que se pueden hacer interfaces usando AGIs para conectar Asterisk a un convertidor con lo cuál con una llamada poder encender o apagar dispositivos tales como alarmas, videocamaras, etc.
La tecnología X10 para muchos no es tan eficiente, ya que es suceptible a interfencias y a variaciones de voltajes y para ello los detractores de esta tecnología recomiendan hacer uso de del protocolo KNX el cuál no solo permite hacer señalizaciones por PLC si no también por TCP/IP y RF lo cuál resulta mucho más interesante.
Buscando información de RED5 para implementar un servidor de VideoConferencias y otras cosas más para un curso en línea que voy a dar en próximos días, me encontré entre la lista de quienes han implementado RED5 a DimDim, el cuál es una plataforma para comunicaciones y videoconferencias vía web. DimDim está basado en RED5 el cuál es un proyecto OpenSource, DimDIm aunque tiene una versión libre disponible para la comunidad, también tiene otra 2 versiones de cobro las cuáles tienen ventajas adicionales.
Entre las características de DimDim es el soporte de comunicaciones multimedia en tiempo real lo que implica transmitir video, audio, texto, imágenes y documentos entre múltiples usuarios a traves de una aplicación flash que comúnmente puede llamarse chat, otra de las cosas interesantes de DimDim es la capacidad de proyectar documentos de OpenOffice y Officeen la página web(chat) para que pueda ser vista por todos los asistentes, pero lo que sin duda es de llamar la atención es el WhiteBoard que trae incluído con lo que la interacción entre los usuarios del chat es simplemente toda una experiencia, pues a traves del WhiteBoard se pueden plasmar ideas y soluciones que muchas veces es complicado explicar o entender con textos o palabras, esto cuándo se está en un videoconferencia.
Puede echársele un ojo a un video que muestra lo que es DimDim en su versión OpenSource, la cuál sin duda es una aplicación muy práctica para lo que es el eLearning y otras cosas más. http://www.dimdim.com/opensource/dimdim_open_source_community_edition.html
OpenVPN es un software basado en la filosofía de software libre, que permite crear conexiones VPN entre equipos Linux, Windows, MacOSX, *BSD, *nix y Dispositivos móviles como Windows Mobile a traves de redes inseguras como internet o redes inalámbricas.
OpenVPN puede funcionar de varias maneras una de ellas de punto a punto, punto a multipunto y en modo bridge.
Punto a Punto: solo realiza una conexión segura entre 2 equipos, esta conexión puede usarse para compartir archivos entre 2 equipos en internet.
Punto a multipunto: Permite conectar a diversos dispositivos a un servidor OpenVPN el cuál permitirá redigir las peticiones remotas a una red interna a traves de una red como internet. El uso de este modo es factible para dar acceso a aplicaciones dentro de una red local a equipos que se encuentran en alguna parte de internet.
Modo Bridge: OpenVPN permite crear conexiones entre 2 redes remotas, de tal forma que OpenVPN funciona como gateway de un punto y otro para poder unificar las redes, esto es muy factible cuándo se tienen oficinas remotas y se desea unificarlas, una de sus ventajas se da para las aplicaciones de Voz sobre IP, Bases de Datos, etc.
Nuestro caso: Punto a Mutipunto.
Este tipo de modo de OpenVPN en mi caso es el que más uso, ya que me dedico a desarrollar aplicaciones para dispositivos móviles los cuáles se conectan a internet a traves de conexiones GPRS(Movistar y Telcel en México), de tal forma que les instalo un cliente OpenVPN a los móviles y de esta forma se conectan a un servidor OpenVPN, esto para poder acceder a las bases de datos, a los web services, servidores FTP, etc., de una forma muy segura sin comprometer la información en redes públicas.
Para comenzar con OpenVPN necesitamos descargar el instalador para Windows de OpenVPN, el cuál puede obtenerse de la siguiente URL: http://openvpn.net/release/openvpn-2.0.9-install.exe
Esto probablemente nos instale el software de OpenVPN en el siguiente directorio:
C:\Archivos de Programa\OpenVPN
Abrir la consola de Windows
Inicio->Ejecutar->CMD
Ya en la consola de Windows ir al directorio easy-rsa de OpenVPN
cd C:\Archivos de Programa\OpenVPN\easy-rsa\
Lo primero que se hará es crear un Certificado de Autoridad (CA)
Ejecutar :
#Inicia el proceso
init-config
#Aqui pedirá valores como Pais, Estado, Ciudad, Organización, Depto, Nombre del Servidor y Correo, todos estos valores se repetirán a excepción del nombre del host que en la parte de configuración de las llaves del cliente en la parte última.
vars
clean-all
build-ca
#Al finalizar esta parte se crearán varios archivos en directorio
C:\Archivos de Programa\OpenVPN\easy-rsa\keys
#Copiar el archivo keys\ca.crt al directorio C:\Archivos de Programa\OpenVPN\config
copy keys\ca.crt ..\config\
Con lo anterior habremos creado el Certificado de Autoridad.
El siguiente paso es crear la llave privada y certificado del servidor.
Ejecutar en el directorio easy-rsa el siguiente comando
vars
build-key-server phylevn.mexrom.net
#dónde phylevn.mexrom.net es el nombre del servidor dónde se está instalando OpenVPN.
#Aquí de igual pedirá datos, los cuáles deben ser los mismos introducidos anteriormente, también pedirá un password, este mismo password debe ser usado cuándo se creen las llave de los clientes.
#Luego ejecutar el siguiente comando
build-dh
#Con esto se habrán creado otros archivos en el directorio keys.
#Copiar los siguientes archivos del directorio easy-rsa\keys a ..config\
C:\Program Files\OpenVPN\easy-rsa> copy keys\dh1024.pem ..\config\
#Ahora hay que configurar el servidor para luego iniciarlo.
#Dentro del archivo de configuración de OpenVPN
C:\Program Files\OpenVPN\config
#Crear un archivo llamado server.ovpn y dentro de ese archivo introducir lo siguiente
port 1194
proto udp
dev tun
ca "C:\Archivos de programa\OpenVPN\config\ca.crt"
cert "C:\Archivos de programa\OpenVPN\config\phylevn.mexrom.net.crt"
key "C:\Archivos de programa\OpenVPN\config\phylevn.mexrom.net.key"# Este archivo debe mantenerse en secreto
dh "C:\Archivos de programa\OpenVPN\config\dh1024.pem"
server 192.168.20.0 255.255.255.0 #Segmento de red que tomarán los clientes remotos
ifconfig-pool-persist ipp.txt
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option WINS 192.168.20.1" <img src="plugins/Emoticons/images/tongue.png"border="0"alt="tongue.png "width="16"height="16"/>ush "route-gateway 192.168.20.1"
client-to-client
push "route 192.168.1.0 255.255.255.0"#Segmento de la red local interna
duplicate-cn #Con esta opción no es necesario crear una llave por cada cliente
comp-lzo #Comprime los datos envíados y recibidos
max-clients 60
persist-key
persist-tun
verb 3
status openvpn-status.log
keepalive 10120
suppress-timestamps
route-delay 1010
#Ya con la configuración realizada solo basta darle click con el botón derecho del mouse al archivo server.ovpn y seleccionar la opción de Start with OpenVPN.
#Pero antes de lo anterior hay que editar el registro de windows en la siguiente llave y reiniciar Windows.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
#Y en la opción de IPEnableRouter configurarlo a 1, esto para que se le permita a OpenVPN hacer el ruteo del segmento de la red privada a la red local interna.
#Ahora si iniciar el servidor de OpenVPN
#Si todo salió bien se abrirá una ventana de comandos y al final indicará
Initialization Sequence completed
#Con esto ya tenemos el servidor de OpenVPN echado andara, ahora falta crear las llaves de los clientes, para esto realizar lo siguiente
#En la consola de comandos ir a :
C:\Archivos de programa\OpenVPN\easy-rsa
#Introducir los siguientes comandos
vars
build-key phylevn
#dónde cliente es el nombre del cliente remoto, debe cambiar por cada cliente remoto configurado en caso de que se creen múltiples llaves.
#Al momento de ejecutar build-key hay que repetir la información anteriormente capturada a excepción del nombre del host que debe ser el nombre del equipo cliente, también en password debe ponerse el password que se dió al crear la llave privada y certificado del servidor de OpenVPN.
#En seguida hay que crear los archivos al directorio config del servidor OpenVPN
copy keys\phylevn.crt ..\config
copy keys\phylevn.key ..\config
#Y también estos archivo hay que pasarlos a la máquina remota, solo hay que tener un modo seguro para envío de estas llaves a las máquinas remotas, los arhivos que debe tener la máquina remota deben ser los siguientes
ca.crt
phylevn.crt
phylevn.key
Dónde phylevn es el nombre de la llave para el host especificado, en caso de que se permita la duplicación de llaves, no importaría el nombre del archivo cliente que se pase en caso de que se tengan varios.
#Ahora en las máquinas clientes también hay que tener instalado el software OpenVPN
#Y se debe crear un archivo de configuracion llamado cliente.ovpn en el directorio config de OpenVPN
C:\Archivos de programa\OpenVPN\config\
#El archivo cliente.ovpn debe contener lo siguiente:
client
proto udp
dev tun
remote 201.123.42.174 1194#Dirección IP Pública del servidor OpenVPN
resolv-retry infinite
nobind
persist-key
persist-tun
ca "C:\Archivos de programa\OpenVPN\config\ca.crt"
cert "C:\Archivos de programa\OpenVPN\config\phylevn.crt"
key "C:\Archivos de programa\OpenVPN\config\phylevn.key"
comp-lzo
verb 3
#Ya que esté guardado el archivo, solo basta presionar el botón derecho del mouse y presionar Start With OpenVPN, con esto el cliente se intentará validar con el servidor remoto, si todo salió bien, entonces el cliente tendra una nueva interfaz de red y le será asignada una IP en el segmento 192.168.20.x, con esto ya podrá hacer ping al servidor remoto, de igual forma a las IPs del segmento de la red local interna dónde se encuentra el servidor de OpenVPN.
#Con Linux son los mismos pasos, a excepto de las rutas, pero el proceso es el mismo, solo se excluye la parte del registro de windows y se activa el IP Forwarding.
Hace unos días estando en Lerdo de Tejada, Veracruz -lugar dónde hacen un arroz a la tumbada muy sabroso-, un amigo me preguntó si conocía de algunos equipos que sirvieran como repetidores inalámbricos, es decir ellos tienen una conexión de intenet de 4 mbps y la querían compartir con varios amigos que están extendidos a los largo de la población, lo que se me ocurrió comentarles rápidamente en base a mi experiencia es que adquirieran Access Points que sirvieran como bridges y que al mismo tiempo pudiera funcinar en modo AP.
Hace tiempo trabajando en una empresa conocí alguno de estos equipos y me tocó configurarlos, los llamados Wireless Switchs, los cuáles tienen Access Ports en vez de Access Points y la configuración es centralizada, estos Access Ports entre sus características es que pueden configurarseles varios ESSID, si no mal recuerdo tenían la opción de meterles hasta 4 ESSID en algunos lo que permitia hacer repetidores inalámbricos, lo malo solo era el costo pues una solución de esta no costaba en ese entonces menos de $ 1,000.00 dólares.
Por lo que una solución como la mencionada anteriormente no era viable para estos amigos que querían realizar una función plenamente con fines de entretenimiento, por lo que regresando aqui a México, D.F., saque un router WRT54G que tenía por ahí empolvándose, previamente ya le había metido el firmware de DD-WRT, la versión 0.23 que salió hace más de un par de años, pero desde entonces no había actualizado el firmware en este equipo, por lo que dándome una vuelta en el sitio de DD-WRT vi que ya tienen la versión 0.24 con su Service Pack 1, por lo que ni tardo ni perezoso la bajé para instalársela.
Antes ya había tenido conocimiento de Redes MESH y WDS(Wireless Distribution System), pero no lo había llevado a la práctica, por lo que despues de bajar la versión 0.24 de DD-WRT pude ver que el AP WRT54G en la configuración del Wireless ya permite trabajar en modo repetidor y modo bridge, por lo que quise hacer una prueba la cuál consiste en lo siguiente:
Conectar el router Linksys en modo repetidor a un Access Point 2Wire Infinitum que está en alguna parte del edificio dónde vivo.
Aqui es importante usar el mismo ESSID, Canal y llave WEP ó WPA que tiene el Access Point "padre" por así decirlo, de forma que hay que conectar el WRT54G como cualquier cliente inalámbrico con la salvedad que en la configuración hay que decirle que está trabajando en modo repeater bridge y no en modo AP o Cliente(ver figura de abajo).
Posteriormente agregar una interfaz virtual inalámbrica en el Router, esto hará que se vea un AP más al gestionar las redes inalámbricas y de ahí poder conectarnos.
Despues solo basta ir a la parte de Wireless->Wireless Security->Virtual Interfaces wl0.1 SSID [phylevn.mexrom.net]
Para poder configurar la parte de seguridad de la red inalámbrica.
Ya que quede todo esto hay que guardar las configuraciones y aplicarlas.
Despues solo ir a la parte de Status y ver como está la parte inalámbrica ahí debería verse como el WRT54G se conecta en este caso al 2Wire Infinitum y también como un cliente se conecta a la interfaz virtual del WRT54G que trabaja en modo AP.
Configuración del WRT54G en modo repetidor y también configurando la interfaz virtual del WRT54G.
Gestionando las conexiones realizadas por el WRT54G, en este caso ya conectado al 2Wire Infinitum y también se observa como un cliente se conectó a la red inalámbrica phylevn.mexrom.net que es la interfaz virtual del WRT54G.
Lo interesante de todo esto es que se realiza en un par de minutos, sin gastar tantos pavos que con soluciones propietarias como las de Symbol Technologies ahora Motorola.
Solo resta agradecerle a la comunidad de desarrollo de DD-WRT y al Open Source en general por permitir esto y muchas cosas más.
Llevo un par de meses integrando en un servidor Linux múltiples herramientas multimedia libres para la creación de un Centro Multimedia con capacidades domóticas.
Entre las que he probado y de la que hablare ahora es de Motion. Motion Es una utilería desarrollado bajo una licencia libre que permite detectar movimientos en cámaras web usando video4linux como interfaz para conexión con Dispositivos de Video en linux tales como cámaras web.
Lo interesante de Motion es que permite usar cualquier Cámara Web compatible con Linux para hacer VideoStreaming esto indica que podemos ver la cámara web a traves de una página web, por lo que monitorear la cámara se puede hacer desde cualquier parte del mundo siempre y cuándo la computadora dónde esta conectada la cámara estuviera conectada a una IP Homolagada, pero lo mejor de Motion es que permite configurarse para que cuándo detecte movimiento capture las imágenes y las guarde en un directorio en formato Jpeg, por lo que su uso se extiende aun más para lo que es VideoVigilancia.
Por default Motion corre en modo aplicación, pero puede configurarse desde su archivo de configuración que está en /etc/motion/motion.conf para que corra en modo demonio por lo que siempre estará corriendo en background.
Motion por default abre el puerto 8000 para que desde otras partes vía una página web se pueda monitorear la cámara web siempre y cuándo la opción de webcam_localhost esté en off, el puerto también es posible configurarlo.
Algo que me llamó mucho la atención de Motion es que es muy configurable a traves de /etc/motion/motion.conf, en dónde leyendo mediante man la documentación me entero de que tiene un trigger on_event_start que permite ejecutar alguna aplicación al momento de detectar movimientos, de tal forma que aqui solo basta usar la imaginación para poder hacer algo interesante tal como es por ejemplo mendiante Asterisk alertar con una llamada telefónica a personal de seguridad de un movimiento detectado.
También algo que me agradó de TextMotion es que guarda imágenes cuándo se detecta movimiento, asi como también tiene la opción de grabar un video de cuándo se detecta el movimiento y mejor aún de mostrar el área dónde se está registrando el movimiento..
Tambien es posible configurar el número de frames necesarios parapoder considerar un evento de movimiento.
Aquí pongo la configuración que uso para usar Motion como un detector de movimiento, con esta configuración guardo videos en formato avi con el codec msmpeg en el directorio default /var/lib/motion/snapshots y también desactivo la opción de que genere archivos JPG o PNG de movimiento, configuro a Motion para que muestre el video usando una calidad de 320x240 por cuestiones de rendimiento y ejecutando al momento de que se detecte un movimiento un script en PHP que es un Agi de asterisk que me permite marcar a una extensión telefónica.
# Minimal motion example config file provided by the # Debian motion package - for basic webcam operation. # # You most certainly want to investigate # /usr/share/doc/motion/examples/motion-dist.conf.gz # for further configuration options. Also, refer to the # motion man page and /usr/share/doc/motion/motion_guide.html # for detailed information on configuration options.
daemon off
quiet on # You may very well need to change this (check with 'dmesg' # after plugging in your webcam).
videodevice /dev/video0 # Image size in pixels (valid range is camera dependent). #Si se tiene una cámara que soporte mayor calidad como por ejemplo 640x480 entonces cambiar los valores, por cuestiones de rendimiento he dejado los valores por default aqui
width 320
height 240
framerate 25 #calidad con que guardará las imágenes JPEG, en cuestiones de seguridad a veces es bueno darle un 100% asi se tendrá una imagen más tínida, aunque esto requerirá mayores espacios
quality 75
auto_brightness off # General threshold level and noise threshold # level (for distinguishing between noise and motion).
threshold 4500
noise_level 64 # Initial brightness, contrast, hue (NTSC), and saturation. # 0 = disabled (valid range 0-255).
brightness 0
contrast 0
saturation 0
hue 0 # Encode movies in real-time (install ffmpeg before enabling). #default ffmpeg_cap_new off #ffmpeg_cap_new off #Habilitar esta opción para grabar videos cuándo haya movimiento
ffmpeg_cap_new on # Codec to be used by ffmpeg for the video compression. # Supported formats: mpeg4, msmpeg4. #se configura el codec a usar
ffmpeg_video_codec msmpeg4 # Target base directory for pictures and films (you may need # to change this (or change its permissions) depending on # which system user runs motion).
target_dir /var/lib/motion/snapshots # Define a port number (e.g. 8000) to enable the mini-http server. # 0 = disabled.
webcam_port 8000 # Set to 'off' to allow anybody (not just localhost) to view the # webcam via the mini-http server (http://hostname<img src="plugins/Emoticons/images/tongue.png" border="0" alt="tongue.png " width="16" height="16" />ort). #webcam_localhost on
webcam_localhost off
webcam_quality 70
webcam_maxrate 8 #Configuracion personalizada #Puerto para entrar a la configuracion
control_port 8001 #Usuario y password para acceder a la configuracion
control_authentication motion:m0t10n #Numero de frames requeridos para poder lanzar el evento de movimiento #minimum_motion_frames 10 #Comando que se ejecuta al detectarse movimiento
on_event_start "php -q /var/lib/asterisk/agi-bin/makeCallwithAsterisk.php" #Esta opcion siempre generaria imagenes cada cierto tiempo aunque no haya movimiento #output_all on #Muestra la región donde se localiza el movimiento locate on #muestra un texto en la esquina inferior izquierda
text_left "phylevn.mexrom.net" #aumenta el tamano del texto
text_double on #se asegura de que haya movimiento
roundrobin_skip 2 #desactivamos la opción de que guarde archivos de imágenes
output_normal off #indicamos que guarde los archivos en formato NTSC para el caso de Mexico
norm 1
Existen otras aplicaciones para monitoreo de cámaras tales como webcam-server, pero a mi gusto Motion por mucho se lleva las palmas.
Para mis prubeas he usado una cámara web Creative Live! Cam, la cuál adquirí por $ 180 pesos en la plaza de la computación.
Para poder conectar esta cámara en Ubuntu Linux 7.10, use el driver ov51x-jpeg-1.5.9. Es posible usar la cámara también para el AMSN y otros programas que hagan uso de Video4Linux.
Hace un par de años encontré VoIPJet, un proveedor de Telefonía a traves de Internet, lo interesante de este proveedor es que ofrece su servicio usando el protocolo IAX, que es un protocolo nativo de Asterisk, el cuál IAX permite hacer las comunicaciones de Voz sobre IP de forma transparente aun estando detras de redes NAT, por lo que se volvió mi proveedor de Voz sobre IP favorito para mis implementaciones de conmutadores PBX de Voz sobre IP, aparte sus precios son bastante buenos: https://www.voipjet.com/prices.php
Pero desafortunadamente desde hace algunos meses el servicio de Voz sobre IP con VoIPJet se restringió solo para proveedores de telefonía IP autorizados por los gobiernos locales, por lo que ya no podrá ser contratado este servicio por usuarios finales, a menos que se tenga un permiso por escrito en el caso de México por parte de la COFETEL, el cuál debe ser enviado a VoipJet para que asi activen el servicio.
Afortunadamente hay otros servicios que si son para usuarios finales, aunque sus precios no son tan bajos como los de VoipJet, pero siguen siendo bastante atractivos para ser implementados en conmutadores de Voz sobre IP.
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 .
Pongo a la disposición para los que asistieron a mis pláticas en el ENLi 2008 en la UPAEP en la Ciudad de Puebla y quién le interese, el material de exposición de mis pláticas.
Para descargarlas accedan a http://files.mexrom.net
Validarse con:
login:invitado
password:invitado
Y luego acceder a la carpeta de conferencias:
Ahí tengo los archivos de las pláticas:
Tema:
Cómo instalar una centralita telefónica con Asterisk
Archivo: Asterisk.odp
Tema:
Fotografía Digital en Linux
Archivo: FotografiaDigitalEnLinux.odp
En esta URL está un procedimiento antiguo para Instalar Asterisk desde cero:
http://phylevn.mexrom.net/index.php/blog/show/Asterisk_1421FreePBX_240_sobre_Ubuntu_710.html
Próximamente subiré la versión actualizada de este HowTo.
Para alguna duda o comentario estamos en contacto en :
[fileinleon] arroba [gmail] punto [com]
Hace unos días fuí a Oaxaca a visitar a mi familia, platicando con mi padre quién es un profesor de educación primaria me comentó que este año le tocó dar clases a alumnos de 6° año de primaria, y con eso de la "Alianza por la Educación" para este nuevo ciclo escolar que va del 2008 es necesario enseñarle ingles a los niños de primaria, mi padre se mostró algo preocupado, ya que el no tiene nociones de ingles, mas que unas solas palabras, por lo que mostró preocupado de como enseñaría a sus alumnos la pronunciación de las palabras que venían en el texto de ingles para el grado asignado.
Por lo que para ayudarle con esto, recordé que ya desde hace tiempo ya vengo trabajando con un sistema sintetizador de voz llamado Festival, este software permite leer textos y reproducirlos con diversos parlantes los cuáles pueden ser en ingles, italiano, frances, español, alemán, sueco, etc. dependiendo de la configuración seleccionada, de tal forma que es posible leer textos en ingles con la pronunciación adecuada usando un parlante ingles, o leer textos en italiano usando en festival un parlante italiano.
El primer detalle que salió fué que festival está creado para Linux el cuál es un sistema operativo de código abierto, pero buscando en internet encontré la forma de compilar Festival para windows gracias a Benjamin L. Brown. Lo que se me ocurrió hacer es algo similar a una aplicación llamada ksayit que funciona bajo linux, esta aplicación lo que hace es reproducir el texto que se copia en cualquier programa, de tal forma que presionando el botón de ksayit ubicado en la barra de tareas de KDE lo reproduce a traves de Festival.
Por lo que haciendo uso de Visual C++, C y Festival sobre Windows pude crear un pequeño plugin para Festival que podría ser de utilidad a alguien que quiera tener una ayuda sobre el aprendizaje de la pronunciación del idioma ingles y otros lenguajes. Instalación del Plugin para la pronunciación del ingles (También ver más abajo el video del procedimiento aquí indicado)
Para poder descargar el plugin de Festival para Windows XP ir al siguiente link: http://files.mexrom.net/index.php
El login y password de acceso es :
user: invitado
password: invitado
Despues de acceder al sistema ir a la carpeta
FestivalSysTray/
Y desde ahí seleccionar el archivo
FestivalTTS.exe
Despues de que se descargue el arhivo ejecutarlo e instalarlo en el directorio raiz C:\
ya que se haya descomprimido se creará en automático el directorio C:\FestivalTTS, enseguida ir al directorio C:\FestivalTTS\festival\src\main\
Y ejecutar FestivalXPSysTray.exe
Una vez ejecutado FestivalXPSysTray.exe, se verá un ícono con forma de boca en la barra de tareas de Windows.
Ahora solo seleccione un texto en ingles en alguna página de internet, documento, ventana, etc y luego vaya a presionar el ícono de la boca, seleccionado la opción hablar.
Enseguida el sistema de Festival comenzará a leer el texto copiado. Codigo Fuente
El código fuente también puede descargarse mediante PHPFileManager, solo ir al directorio source code y descargar los 2 archivos listados:
FestivalXPSysTray_src.exe
festival_piped.c
Aquí pongo un video que indica los pasos para la instalación del plugin de Festival, esto por si hay algún profesor de educación primaria en nuestro pais que le fuera útil el plugin.
Cualquier comentario, error o duda sobre el plugin desarrollado pueden hacérmelo saber en:
fileinleon [arroba] gmail [punto] com
Saludos..
Comentarios Recientes