Ya hablamos en DiarioLinux sobre el servicio Metaposta (y como se ve en ese post, también se habló al respecto en el Parlamento Vasco). Tras leer esos documentos, no obstante, seguro que nos quedaban muchas dudas al respecto… Pues bien, los propios administradores de Metaposta han comenzado un blog, llamado METAPOSTAriak, que tiene como objetivo informar sobre este servicio, incluyendo para empezar una descripción más detallada (con ejemplos de uso que yo echaba en falta) tal y como apareció en PCWorld, y un FAQ, donde (en la segunda parte) han tenido a bien publicar la respuesta a mis preguntas 🙂 (thanks David!) Creo que es de obligada lectura para todo usuario del servicio….
Categoría: diariolinux
Configurar el headset USB en Ubuntu
Aprovechando que me ha tocado un mes de Zattoo (gracias a i-Gente), he querido configurar mi headset (auriculares + micro) USB en Ubuntu (8.04). El sonido funciona en Rythmbox , Skype y hasta ahora en Zattoo. Pero hoy no quería funcionar… o_O
Navegando sin rumbo he encontrado la receta para solucionarlo. Basta con indicarle a Ubuntu que la tarjeta de sonido por defecto es la que incluye el headset:
Podemos ver la lista de tarjetas disponibles así:
juanan@morton:/tmp$ sudo asoundconf list
Please note that you are attempting to run asoundconf as a privileged superuser, which may have unintended consequences.
Names of available sound cards:
nForce2
Headset
UART
Y poner una por defecto (la del headset USB, por ejemplo)
juanan@morton:/tmp$ sudo asoundconf set-default-card Headset
Please note that you are attempting to run asoundconf as a privileged superuser, which may have unintended consequences.
Ya tengo Zattoo funcionando 🙂
juanan@morton:/tmp$ zattoo_player
Web Scraping: urls de ayuntamientos de Gipuzkoa
Bien, sigamos con nuestra mini–serie. Necesitamos tener una hoja de cálculo con los nombres de los municipios de Gipuzkoa en una columna y las URL de los ayuntamientos de dichos municipios en la columna adyacente. Ayer vimos que eso es viable y más o menos «automatizable», siempre que dispongamos de algún servicio que nos proporcione la URL de un municipio dado su nombre como parámetro. La información en bruto la podemos encontrar en esta web de EUDEL. El objetivo es «recortar» esa información para guardarla en una simple tabla de una base de datos (usando MySQL como SGDB). Para ello, creamos primero el esquema de nuestra tabla municipios, donde guardaremos la información:
CREATE TABLE <code>municipios
(
ID
int(11) NOT NULL auto_increment,
nombre
varchar(200) NOT NULL default »,
url
varchar(200) NOT NULL default »,
PRIMARY KEY (ID
)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Un simple script PHP hará el resto:
<?
include ("datosconexion.php"); // datos de conexión a MySQL
$municipios = "<a href="http://www.eudel.net/aNG/web/eus/est/udalerriak.jsp?nIdm=1&nId=3&sNombre=Gipuzkoa">http://www.eudel.net/aNG/web/eus/est/udalerriak.jsp?nIdm=1&nId=3&sNombre=Gipuzkoa</a>";
$linea = file_get_contents($municipios); // leemos la página de EUDEL y la guardamos en el string $linea
preg_match_all("/<li>(.<em>)<br><a(.</em>)>(.<em>)</a></li>/", $linea, $trozos); // expresión regular para sacar nombre_URL
$i = 0;
foreach ($trozos[1] as $nombre) { // recorremos el resultado de la expresión regular
$url = $trozos[3][$i];
$sql = "insert into municipios
set ID='', nombre='$nombre', url='$url'";
mysql_query($sql) or die("Error:" . mysql_error()); // guardamos lo obtenido en la tabla municipios
echo $sql . "n";
$i++;
}
?>
Una vez guardadas las tuplas (nombre, url), sólo nos queda crear el servicio php correspondiente:
<?
include ("datosconexion.php");
//
$nombre = $_GET['municipio'];<br />
$sql = "select </em> from municipios
where nombre LIKE '". mysql_real_escape_string($nombre) . "%'"; // intentando evitar ataques SQL Injection
//
$result = mysql_query($sql) or die("Error:" . mysql_error());
if (mysql_num_rows($result) > 0){
$linea = mysql_fetch_array($result);
echo $linea['url'];
}
?>
Ok! Todo funciona. ¿Y para qué quiero esos datos? Pronto lo veréis…
Masajeando Google Docs y Wikipedia (II)
Sigamos donde lo dejamos. El objetivo ahora es conocer la url del ayuntamiento de cada municipio de Gipuzkoa y colocar esa url en la celda correspondiente (ver imagen de la izquierda)
Para ello, necesitamos algún servicio que dado un nombre de municipio nos devuelva la url del ayuntamiento. Supongamos que tenemos uno en DiarioLinux (bueno, no supongamos, sea):
http://www.diariolinux.com/municipios/locate.php?municipio=XXXXXX
Donde XXXXXX es el nombre de un municipio (no hace falta que sea exacto… si ponemos Arrasate, nos saldrá la URL del ayuntamiento de Arrasate-Mondragón, sin problemas).
Ahora, ¿cómo decirle a Google Docs que en la celda D3 ponga la URL del municipio que indico en A3? Fácil. Nos colocamos en D3 y escribimos la siguiente fórmula:
=ImportData("<a href="http://www.diariolinux.com/municipios/locate.php?municipio="&A2">http://www.diariolinux.com/municipios/locate.php?municipio="&A2</a>)
¿Qué hemos hecho? Hemos construído una URL concatenando las cadenas «http://www.diariolinux.com/municipios/locate.php?municipio=» y el contenido de la celda A2 («Aduna») para formar:
<a href="http://www.diariolinux.com/municipios/locate.php?municipio=Aduna">http://www.diariolinux.com/municipios/locate.php?municipio=Aduna</a>
Ese «servicio web» devuelve la url «www.aduna.net». Estiramos hacia abajo desde el manejador de la esquina inferior derecha de la celda D3 y ya tenemos nuestra hoja completita para seguir trabajando.
Epígrafe: «¿cómo has conseguido crear el servicio locate.php en DiarioLinux?» Mediante técnicas de web-scrapping que veremos mañana 😉