Estos días he tendio que lidiar on una de esas tareas que a priori parecerán triviales y de repete te das cuenta de que no lo son tanto... Tenía que migrar un servidor físico a uno virtual. Si buscáis información en google al respecto encontraréis toneladas de información al respecto. Eso es lo que pensé yo a primera vista. Es una tarea tan "común" que tiene que haber mil documentos y páginas de referencia. PUES NO.
/boot
/dev/*
/mnt/*
/tmp/*
/proc/*
/sys/*
/usr/src/*
/etc/sysconfig/network-scripts/ifcfg-eth*Como algunos sabréis, últimamente he estado instalando y configurando un media center en casa. Como sistema base he utilizado el ya conocido MythTV. El propósito de este post no es explicar su instalación y configuración, para eso podéis consultar el wiki, que tiene todo lo necesario. Nuestro objetivo aquí es comprobar la disponibilidad de nuestros servidores web.
La idea es sencilla:
- Creamos una lista de los servidores que queremos monitorear.
- Nos descargamos las página principal de estos servidores.
- Comprobamos que el contenido de la pagina es el esperado (contiene una frase determinada).
- Mostramos el resultado por el OSD de MythTV.
- Programamos esta tarea para que se ejecute automáticamente cada X tiempo.
La mayoría de pasos son triviales, quizá aquí lo único novedoso sea el hecho de comunicarse con MythTV. Esto lo hacemos gracias a una aplicación que viene en la instalación por defecto y que se llama mythtvosd. Ésta aplicación recibe información (vía XML, o línea de comandos) y la manda a la pantalla. Tenemos varios "templates" (cid, alert, scroller). El CID es utilizado cuando tenemos un servidor de Asterisk, para mostrar el Caller ID (el número de teléfono de una llamada entrante). El ALERT sirve para mostrar una información estática por unos segundos en pantalla. El SCROLLER es la típca marquesina que aparece en la parte inferior de la pantalla en canales de noticias (pensad en CNN, por ejemplo) en el cual nos muestra información (generalmente titulares).
Para nuestra apliación en cuestión, tanto el template "alert", como el template "scroller" nos pueden servir. Yo personalmente prefiero scroller, pero para gustos hay colores. Un ejemplo de la sintaxis de mythtvosd sería algo así:
mythtvosd --template=scroller --bcastaddr=127.0.0.1 --scroll_text="hola chato"
Evidentemente debéis substituir la dirección IP 127.0.0.1 por la dirección de vuestro servidor MythTV.Bueno pues esto nos dá multitud de posibilidades, como por ejemplo, ver los titulares de nuestros blogs o periódicos online prefereidos, cotizaciones bursátiles (para los que nos sean pobres, como yo), la meteorología, incluso sería posible saber cuando nuestro amigos se conectan a Jabber.
Os dejo aquí un archivo de ejemplo (en php) que sirve para monitorizar la disponibilidad de nuestros servidores web. Es muy sencillo asi que a no ser que alguien lo solicite expresamente no explicaré más al respecto. Si tenéis dudas, utilizad los comentarios. Espero que os sirva de base para crear vuestras propias aplicaciones.
NOTA: Veréis que para no complicarme la vida he utilizado la función fopen de php para obtener el contenido de las páginas, esto puede ser que no os funcione en determinados servidores. Recientemente apareció una grave vulnerabilidad en esa función, y por defecto suele estar dishabilitada. Como alternativa podéis utilizar curl para hacer esa misma tarea.
PS: Otro ejemplo buenísimo de lo que se puede hacer, y que ya mencionaba más arriba es el de poner los titulares de nuestros feeds preferidos. Lo podéis ver aquí.
Technorati tags: mythtv monitoring
Este fin de semana estuve instalándole a mi madre su primera distro de GNU/Linux. Por eso de que es una principiante fui directamente a lo más fácil: Ubuntu La instalación es muy sencilla y me detectó todo el hardware a la primera. Bueno, todo no, solo tuve problemas con el adaptador wireless USB de la marca Belkin.
Para empezar, si tenía el adaptador conectado de repente el sistema iba muy lento, hice un top y ví que el proceso NetworkManager estaba utilizando el 100% de la CPU. Chungo. El problema desaparecía si desconectaba el adaptador y descargaba el módulo del kernel (por defecto carga el rt2570). Curiosamente, y dado que también disponía de un CD de kubuntu a mano decidí probar. En esta ocasión sí reconocía el adaptador correctamente e incluso podía ver las redes disponibles, sinembargo no podía asociarme a ninguna de ellas. Vamos, que no había avanzado mucho, por no decir nada.
Empecé a buscar datos sobre la tarjeta en cuestión (obtenidos con un lsusb):
idVendor 0x050d Belkin Components
idProduct 0x705a
Entonces, como lo hice para que funcionara:
Primero, vais a /etc/modprobe.d/blacklist y le añadís las siguientes lineas:
blacklist rt2570
blacklist rt73usb
Ahora descargáos los fuentes del nuevo módulo de aquí (el archivo a descargar es el rt73-cvs-daily.tar.gz). A continuación hacemos:
# tar zxvf rt73-cvs-daily.tar.gz
# cd rt73-cvs-2007052719/Module
# make
# make install
Listo! El módulo (que se llama rt73 a secas) se carga solito, podréis detectar las redes y, por supuesto, asociaros a cualquiera de ellas :)
Aviso: La información necesaria para llevar a cabo este proceso la saqué del foro que alsa tiene a tal efecto. No me hago responsable de cualquier daño que se le puedas causar a tu equipo por seguir el proceso que explicaré a continuación. Si lo llevas a cabo es bajo TU responsabilidad. Las instrucciones que explico a continuación si bien son para Gentoo pueden ser fácilmente aplicables a otras distribuciones.
Vamos allá:
Primero debéis estar seguros de que no tenéis compilado ALSA dentro del kernel que estéis utilizando. Para saberlo basta con ejecutar este comando:
zcat /proc/config.gz | grep -i alsa
Si este comando no os devuelve nada, entonces es que vamos bien. Si os devuelve una o más lineas vais a tener que recompilar el kernel deshabilitando el soporte de ALSA. Hay mucho tutoriales que explican como hacerlo. Recordad: google es vuestro amigo.
Si hace tiempo que no actualizáis vuestro portage éste es un buen momento para hacerlo, así nos aseguramos de tener los últimos drivers disponibles.
A continuación, ya como usuario root ejecutad el siguiente comando:
echo "media-sound/alsa-headers ~x86" >>/etc/portage/package.keywords
echo "media-sound/alsa-driver ~x86" >>/etc/portage/package.keywords
Haciendo esto nos aseguramos de instalar los drivers inestables (aún en desarrollo). Instalamos:emerge -ac alsa-headers
Si todo va bién nos debería instalar la última versión, que a día de hoy es la 1.0.14rc3.
A continuación tenemos dos posibilidades:
a) La fácil: Descarágos el código fuente ya pre-parcheado del driver que os he preparado aquí. El parche no es mérito mío, que conste, yo simplemente he seguido las instrucciones detallas en el foro que os indiqué al principio para que a todos os resulte más sencillo.
b) OPCIONAL para usuarios más experimentados. Si os gusta hacerlo todo a mano (benditos los intrépidos). Ahí va la explicación extensa:
Descomprimid el archivo alsa-driver-1.0.14rc3.tar.bz2 y entrad en la carpeta del parche para realtek:
tar -xjvf alsa-driver-1.0.14rc3.tar.bz2
cd alsa-driver-1.0.14rc3/alsa-kernel/pci/hda/
Una vez ahí, reemplazad el archivo patch_realtek.c por el otro que podéis descargar de aquí.
Editadlo y en la línea 3760 substituid este código:
//8<--------------------------------------------------
static struct hda_verb alc260_will_verbs[] = {
{0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL,
PIN_HP},{0x0b, AC_VERB_SET_CONNECT_SEL, 0x00},{0x0d,
AC_VERB_SET_CONNECT_SEL, 0x00},{0x0f, AC_VERB_SET_EAPD_BTLENABLE,
0x02},{0x1a, AC_VERB_SET_COEF_INDEX, 0x07},{0x1a,
AC_VERB_SET_PROC_COEF, 0x3040},{}}
//8<-------------------------------------------------
Por este otro:
//8<-------------------------------------------------
static struct hda_verb alc260_will_verbs[] = {
{0x08, AC_VERB_SET_AMP_GAIN_MUTE,AMP_IN_UNMUTE(0)},
{0x08, AC_VERB_SET_AMP_GAIN_MUTE, AMP_IN_UNMUTE(1)},
{0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP},
{0x0f,AC_VERB_SET_EAPD_BTLENABLE, 0x02},
{0x0b, AC_VERB_SET_CONNECT_SEL,0x00},
{0x0d, AC_VERB_SET_CONNECT_SEL, 0x00},
{0x1a,AC_VERB_SET_COEF_INDEX, 0x07},
{0x1a, AC_VERB_SET_PROC_COEF, 0x3040}, {}};
//8<------------------------------------------------------
Guardad los cambios y cerrad ese archivo.
Ahora cambiad el archivo hda_proc.c que está dentro de este archivo.
Y ejecutad los siguientes comandos:
cd ../../../../
tar -cjf alsa-driver-1.0.14rc3.tar.bz2
De esta manera saldremos del directorio donde tenemos el driver y volveremos a comprimirlo en el formato original tar.bz2
FIN DE LA SECCI?N OPCIONAL
Ahora que ya tenéis el nuevo archivo alsa-driver-1.0.14rc3.tar.bz2, copiadlo dentro del directorio /usr/portage/distfiles y a continuación ejecutad (como root) el siguiente comando:
ebuild /usr/portage/media-sound/alsa-driver/alsa-driver-1.0.14_rc3.ebuild digest
emerge -av alsa-driver
En estos momentos ya tenemos el driver instalado, pero no en marcha. Para ello nos hará falta por lo menos otro paquete, ya de paso añadiremos alsasound a la secuencia de arranque para que cada vez que iniciemos nuestro PC se cargue en el sistema:
emerge alsa-utilsrc-update add alsasound default
Es importante editar el fichero /etc/modules.d/alsa y añadir las siguientes líneas al final del mismo:
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel
model=will
options snd cards_limit=1
Ahora reiniciamos y ya está :)
Recordad que por defecto el volumen está 0. Para subirlo y bajarlo podéis utilizar alsamixer (que ya lo tendréis instalado), alsamixergui (tendréis que instalarlo, ya sabéis: emerge alsamixergui...) o cualquier otro...
Technorati tags: Realtek+ALC260 linux drivers alsa alsasound gentoo
Gracias a un compañero de trabajo descubrí esta pequeña maravilla del open-source. Resulta que en casa tengo 2 laptops y mi idea era poder manejar ambos con el teclado y mouse de solamente uno de ellos, es decir, 2 PCs pero como si entre ellos compartieran el mouse y el teclado. Para PCs de sobremesa ya existen aparatitos (kvm) que hacen esto, pero cuando se trata de laptops (como es mi caso) no sirven. Pues eso es exactamente lo que hace synergy.
Synergy consta de dos partes, la cliente y la servidor. Por una parte en el PC servidor definimos qué PCs son los que participan en nuestro sistema multiple y en qué posicion estan estos PCs virtualmente. Esto último lo entenderéis mejor si os explico mi caso concreto: Tengo 2 PCs (llamémosles PC1 y PC2), pues yo lo he configurado como si el PC2 estuviera a la derecha del PC1 de modo que si si estando en el PC1 muevo el mouse hacia la derecha de la pantalla hasta salirme de los limites de pantalla automáticamente todas las ordenes del mouse y teclado que yo haga pasan a ser interpretados por el PC2. Si alguna vez habeis utilizado la opcion de extender el escritorio de windows, esto es muy similar.
Lo mejor de todo es que tienen clientes para casi todos los sistemas operativos que son totalemente interoperables entre ellos. De modo que yo desde mi windows puedo manejar tranquilamente mi pc con linux y viceversa. También existe cliente para Mac. A veces las pequeñas aplicaciones son las que nos hacen la vida más fácil.
Technorati tags: kvm synergy remote+desktop
Desde hace unos días me he puesto a trabajar en una aplicación para leer feeds muy al estilo bloglines, pero "home made". La aplicación podemos decir que en estos momentos ya funciona en su modalidad más básica. Es decir, te puedes suscribir a un feed y leerlo a través del navegador (tengo pensadas muchas funcionalidades extras que aun o he implementado). La cosa es que hoy tuve un "self brainstorming" mientras estaba en el baño (una de mis incansables fuentes de inspiración, la verdad) y llegué a la conclusión de que hay que a empezarlo de nuevo de cero. ¿Por qué? Muy fácil, a día de hoy el programita está escrito totalmente en PHP con un montón de switch, case, if,..., mal vamos... Si bien PHP es el lenguaje con el que más cómodo me siento al programar y existen librerías para hacer casi cualquier cosa, no es un lenguaje pensado para trabajar con XML. Que puede hacerlo? Por supuesto, y la prueba está en que lo tengo funcionando, pero no es la herramienta ideal para este tipo de trabajo.
Hace años, cuando trabajé para la "empresa" (¿?) oasys soft entré en contacto por primera vez con XML y con algo llamado XSL. En esencia una XSL lo que hace es decirnos cómo debemos interpretar una determinada página en XML. En su momento lo utilicé para generar gráficos dinámicamente en SVG a partir de un o más series de datos formateados con XML.
Ahora voy a intentar tomar ventaja de esa experiencia para hacer mi lector de feeds, y es que si quieres resolver un problema con alguien, lo mejor es hacerlo hablando su propio idioma, en caso contrario la solución tiende a ser solamente una chapuza temporal.
Vía meneame encuentro un video de los más realista acerca de lo "maravilloso" que es tener un Windows XP con un flamante Internet Explorer... Ojo al dato:
Con lo fácil y seguro que se navega con firefox...
PD: Mak, las fotos del evento de Spain Again ya vienen.
Este pasdo fin de semana a parte de algo de turismo hice un importante descubrimiento. Estaba yo pasando con el coche por Santiago cuando mi mirada se paro en un cartel que anunciaba una asociación de software libre dominicana! La verdad es que me impresionó mucho pues ni se me había pasado la cabeza que por aquí GNU/LINUX contara con tanto apoyo como mantener este tipo de asociaciones y con las instalaciones que tenía ésta: Multitud de salas de conferencias, salas de redes, de programación, de cursos básicos de Linux, manuales de linux propios... impresionante.

Las distros que más utilizan son RedHat y Debian, ya les presentaré a nuestra amiga Gentoo... ;) Ya me he puesto en contacto con esta gente y seguro que en un futuro no muy lejano haremos alguna cosa juntos. El cartel de Tux con acordeón y sombrero típico dominicano es todo un puntazo!
Fundación Código Libre Dominicano
Technorati tags: linux dominicana
A los que como yo os veáis obligados a trabajar con windows os recomiendo esta aplicación. Te hace olvidar que estás trbajando con productos Microsoft hasta que te aparece el siguiente pantallazo azul :)
Si queréis ver el verdadero aspecto de esta web y disfrutar de una mejor experiencia de navegación con seguridad, os recomiendo encarecidamente pasaros a Firefox.
Otra pequeña mejora (bueno, más que mejora es un caprichito) es que también aparece el logo de la web.
Sólo me queda un problemilla por resolver en este sentido, y es que al insertar un link éste parece que se ignoran los espacios previo y posterior... alguna idea?
Estoy un poco hasta los cojones de Moco$oft, sinceramente. Hasta ahora lo que me había parado era la falta de conexión a internet y que en mi antigua instalación no configuré debidamente el servidor de X y no conseguía ni matado ver pelis por TV a través de la salida S-video. Ahora mismo me estoy documentando acerca de este tema... he encontrado muchas páginas con información que espero que me sea útil.
Próximamente (si los de Verizon espabilan, vaya), dispondré de conexión a internet en casa vía ADSL lo cual facilitará el mantenimiento de mi sistema, porque eso de traerme el portátil a la oficina para bajarme un puto paquete pues la verdad es que es una lata.
En fin, en otro órden de cosas, los detallistas habréis notados un par de cambios en la web. He vuelto a cambiar el CSS y ahora las tablas solamente tiene un borde redondeado y no dos como antes. Además he eliminado/agregado links al menú que aparece a la izquierda. Visitadlos...
no hay que ser un lince para darse cuenta de que probablemente el edificio más fotografiado fue el Capitolio pero os aseguro que realmente valía la pena. Es impresionante.
Los paisajes naturales que probablemente muchos admireis son pertenecientes a la zona de Pilar del Rio. Concretamente al Valle de Viñales.
Espero que os gusten
I hope that you enjoy these little lessons.
There's only 10 kinds of persons, those who understand binary and those who don't ;)


