Guardar los enláces edonkey de una página web

Muchas veces nos hemos topado con páginas web que tienen un montón de enlaces edonkey publicados y quisierámos guardarlos todos en un fichero, para que luego nuestro programa favorito p2p pueda descargárselos de una tacada en vez de pulsar de uno en uno. En linux se puede hacer muy fácilmente usando los comandos wget y el grep de esta forma:

wget -q -O - <url> | grep -E -o 'ed2k://[^/]+/' > <fichero>

Donde <url> es la url de la página web que contiene los enlaces y <fichero> es el fichero donde queremos guardarlos.

Europa decepciona

He leido este artículo y me he sentido profundamente decepcionado. Estámos viviendo lo que antes solo se veía en películas y libros: El mundo está controlado por corporaciones. ¡¡¡ Y de que manera !!!

El hecho de que los eurodiputados se bajen los pantalones ante las presiones de sociedades privadas es patético, y que estos eurodiputados (que ya poco representan a la población) tambien quieran de paso controlar cualquier comunicación que no les interese es de lo más déspota que se puede echar uno a la cara. Lo hacen sin consultar a la gente que representa, lo hacen a escondidas y lo hacen porque son unos vendidos.

Ya no confio en Europa. Se nos vendió como una oportunidad de crecer todos juntos, pero lo que estoy viendo es que sirve para perder derechos y libertades. ¡¡¡ Que envidia os tengo Suiza y Noruega !!!.

Gráficas en flash

Si en el anterior artículo hablaba sobre las bondades del jpgraph generando gráficas para php, en este comento una utilidad estupenda para hacer gráficas animadas en flash.

XML/SWF Charts es una herramienta hecha en flash creada por Manii. Esta herramienta es un conjunto de ficheros swf que guardaremos en nuestro servidor y que a través de un fichero xml daremos forma a nuestra gráfica. Se pueden generar un montón de gráficas distintas, y lo mejor: son animadas. Aunque flash no está tan extendido como las imágenes estáticas en los navegadores, podría aventurarme que un 90% o más se verá perfectamente.

Así por ejemplo, este fichero xml hace que se muestre esta gráfica:

Gráficas en php con jpgraph

Para crear gráficas en php no he encontrado mejor herramienta que jpgraph. Es gratuito si no se usa comercialmente y su uso es muy sencillo.

Tiene muchos tipos de gráficas para representar datos y se instala fácilmente en cualquier servidor: Copiando la carpeta src en el servidor web, renombrándola a jpgraph y luego simplemente enlanzando dentro de nuestro script php las librerías.

Así por ejemplo podemos crear un gráfico simple con unos datos sobre la renta per cápita de distintos países:

Para generar este gráfico hay que seguir estos pasos:

Incluir las librerias (la ruta dependerá de donde las hayamos copiado):


include ("../../jpgraph/jpgraph.php");
include ("../../jpgraph/jpgraph_bar.php");

Creamos dos arrays con los datos que se van a representar (eje x e y):


$datax = array("Alemania", "España", "Francia", "Italia", "Reino Unido");
$datay = array(43267, 22368, 37644, 32949, 39762);

Creamos el objeto del gráfico de un tamaño de 500px * 200px y establecemos que el eje x es texto y el eje y es numérico:


$graph = new Graph(500,200,"auto");
$graph->SetScale("textlin");

Establecemos los márgenes del gráfico y le añadimos una sombra por detrás:


$graph->img->SetMargin(50,100,20,40);
$graph->SetShadow();

Creamos un objeto de gráfica de barras, decimos que su color sea naranja, que se muestre la leyenda y que añada esa gráfica al objeto general.


$barra = new BarPlot($datay);
$barra->SetFillColor("orange");
$barra->SetLegend("Euros");
$graph->Add($barra);

Le añadimos un título al gráfico y otro a uno de los ejes, poniendo ambos en negrita:


$graph->title->Set("Renta per cápita");
$graph->xaxis->title->Set("Países");
$graph->title->SetFont(FF_FONT1,FS_BOLD);
$graph->xaxis->title->SetFont(FF_FONT1,FS_BOLD);

Añadimos el texto del eje x y finalmente lo mostramos:


$graph->xaxis->SetTickLabels($datax);
$graph->Stroke();

Deautenticación de una red wifi

El otro día estuve probando cómo con el airoplay se puede desconectar a todos los usuarios de una red wifi, probándolo en la red wifi de mi casa. Y efectivamente, dejó a mi pda sin conexión mientras duró el ataque.

Aunque no se ve bien, con la pda hago ping a google y funciona correctamente. Luego me voy al ordenador, ejecuto el ataque del airoplay y a continuación vuelvo a enfocar la pda, donde se ve el cambio de estado de los paquetes ping a time out. Después paro el ataque, enfoco de nuevo la pda y se ve como otra vez hace ping a google correctamente.

Creación de botones web on-line

Muchas veces cuando quieres hacer una web con menús te gustaría darla un toque especial y hacer las opciones en forma de botones con texto. Con el GIMP o el photoshop se puede hacer, pero es engorroso.

Pero hay una manera mucho más cómoda. En la web http://www.buttongenerator.com/
puedes generar botones y menús de botones dinámicamente. Hay algunos que son libres y otros que sólo se pueden usar si te registras en la web. Si los usas debes poner un link a buttongenerator y no puedes venderlos ni incluirlos en un almacén de imágenes o plantilla web.

Programar plugins para VMWare

Con la documentación aportada en este sitio http://akutz.files.wordpress.com/2008/05/vi3progplugin-rev13.pdf he sido capaz de crear un plugin para los clientes de VMWare Infraestructure. El plugin en cuestión es un chat para que la gente que esté conectada y tenga instalado el plugin puedan hablar entre ellos aunque estén distantes geográficamente.

Con el plugin cada cliente se conecta a un servidor de B.B.D.D. SQL Server para comprobar si hay mensajes de otros usuarios cada poco tiempo, al igual que guarda en este los mensajes escritos por el usuario. Si un usuario no está en el chat en ese momento se le puede llamar haciendo doble click en el nombre de la lista de sesiones.

La pena es que la API no haya sido publicada oficialmente por VMWare.  Aún más engorroso es registrar una extensión del servidor (para poner el plugin a disposición de todos) ya que se usan triquiñuelas y no se sabe si VMWare dará documentación de como hacerlo.

Los plugins por lo general deben instalarse en el directorio del ordenador cliente [directorio de VMware]\Infrastructure\Virtual Infrastructure Client\Plugins.

Como está personalizada para mi empresa no pongo los fuentes, pero si alguien desea preguntarme algo lo puede hacer usando los comentarios de este mismo artículo.

Los antíguos artículos de blogger ya redireccionan a este blog

Hace tiempo inserté los artículos de blogger a mi wordpress. Aunque mi hosting no me permitía hacerlo directamente, los importé desde wordpress.com seleccionando la importación desde blogger. Luego exporté los artículos a WXR y finalmente los importé en mi wordpress. Aunque todo ha ido estupendamente, he de retocar algunos artículos porque las fotos y algún texto no se visualizan correctamente.

A continuación tenía que hacer que cuando alguien accediese a alguno de mis artículos de blogger, se mostrase el equivalente en wordpress. Así que usé una solución basada en javascript ya que blogger no permite redirecciones condicionales al estilo de .htaccess. Este script lo puse en la plantilla de blogger, y ¡voilà! Funcionó. Es tan sencillo como poner

<script>
document.location.href="https://www.sistemasorp.es/" + "<$BlogDateHeaderDate$>";
</script>

entre las etiquetas BlogDateHeader y su función es redirigir el navegador a mi dominio, a un directorio en concreto en formato de fecha.

En particular esto me sirve ya que:

  • Casi todos mis artículos están publicados en días distintos unos de otros.
  • WordPress guarda los artículos en directorios en formato de fecha.

Así por ejemplo un artículo que se publicó el 20/05/2004 y cuya URL en blogger es:

http://sistemasorp.blogspot.com/2004/05/las-patentes.html

Redirige automáticamente a:

https://www.sistemasorp.es/2004/05/20/

Así puedo hacer que todo el mundo que tenga activado el javascript pueda ver el nuevo formato del blog si acceden desde blogger.

Google Open Pizza Night II (impresiones)

Bueno, pues una vez concluido el evento ya puedo escribir sobre el, aunque lo haré resumido y con fotos y videos.

En general ha sido un evento interesante, divertido y hasta en mi caso productivo.

Se ha realizado en lo que sería el comedor de la sede de google en españa, sita en la planta 26 del edificio torre picaso:

cimgp0507.jpg

Las vistas son impresionantes:

cimgp0506.jpg

Y aunque he llegado media hora tarde, en realidad estaban empezando con una charla sobre programación de la API de youtube.

La charla ha sido amena, y mucho más distendida que en el Google developer day, donde en las ponencias había mucha más gente y muchos nos perdíamos sobre lo que había que hacer. Aquí nos lo han explicado paso por paso y si nos perdiamos venía gente de google a ayudarnos.

Como había tanta gente (seríamos unos 50 + o -), al final me tuve que sentar en los sillones-puf que tenían por ahí, y aunque cómodos, para levantarse o bien cogías carrerilla con los michelines o bien te apollabas en el suelo, por supuesto dejando el portatil donde buenamente pudieses.La red wifi no andaba muy fina, y eso me recordaba a los problemas que tuvieron también por el mismo tema en el Google developer day. Aún así pudimos seguir las explicaciones para probar las APIs.

Luego vino el descanso, y tomamos la ansiada pizza que daba nombre al evento, acompañada de unas cervercitas, refrescos, golosinas, etc:

cimgp0505.jpg

Pizza, cerveza y código:

cimgp0509.jpg

Las golosinas. Google es una de las pocas empresas que ofrece todo gratis a sus empleados:

cimgp0508.jpg

Charlar, picar código, navegar por internet… en el descanso cualquier cosa era factible:

Luego comenzaron los proyectos individuales que habían creado algunos asistentes usando en parte las apis de google maps y youtube, entre otras. La verdad es que alguno era muy interesante y muchos ya estaban funcionando. Tenían 10 minutos de exposición y otros 3 de preguntas cada uno.Luego hubo reparto de premios, en el cual yo gané una power ball debido a que había hecho un ejercicio que nos habían propuesto: Mostrar subtitulos o mensajes en base al tiempo de reproducción de un video usando la api de youtube. En mi caso, algo cutre, pero funcional 🙂

La verdad es que Google es diferente y se nota en estos aspectos. No es que Google esté de moda y por eso nos guste a la mayoría, es que Google nos ofrece servicios que todos podemos usar y realmente se interesa de que podamos sacarlos provecho y lleguen a todo el mundo (ya sea a programadores para implementar sus aplicaciones o al público en general que las maneja).

Esperemos que sigan en esa línea y pronto tengamos otro evento.