Mikel

Mikel

(50 comentarios, 157 entradas)

Este usuario no ha compartido ninguna información de perfil

Web: http://interadictos.es

Entradas de Mikel

Scrapy: Framework en Phyton para obtener datos de la web (Instalación en Debian)

0

Desde hace unos años se viene produciendo una necesidad por recopilar la mayor cantidad de datos posible, procesarlos y analizarlos. Las herramientas comprendidas dentro del llamado Big Data permiten esto, aunque hay un pequeño sector que está creciendo en importancia: la obtención de datos desde otras web. No estoy hablando de APIs, sino de recopilar información del html que nos exponen otras páginas webs.

A la recopilación de esta información se le llama Web Scraping (http://es.wikipedia.org/wiki/Web_scraping), y está comprendido dentro de las técnicas de Minería de Datos (http://es.wikipedia.org/wiki/Miner%C3%ADa_de_datos) del Big Data (http://es.wikipedia.org/wiki/Big_data).

Scrapy nos permite realizar esta tarea de la forma más cómoda posible, aunque necesitarás conocimientos de Phyton para poder usarla.

En Debian su instalación es muy sencilla.

Primero es necesario asegurarnos que disponemos de las librerías adecuadas:

apt-get install phyton phyton-dev phyton-pip libxml2-dev libxslt-dev libffi-dev

En segundo lugar, instalamos Scrapy:
pip install scrapy

Una vez finalizado el proceso de instalación nos vamos al directorio donde tengamos nuestros proyectos de programación, y allí ejecutamos la siguiente línea en la consola:
scrapy startproject nombre_proyecto

Este comando nos creará el directorio del proyecto (nombre_proyecto) y todo el árbol de directorios y archivos necesarios para empezar.

subversion_logo

Pasar un repositorio Subversion a otro servidor

0

Hay veces en las que es necesario pasar nuestro repositorio Subversion a otro servidor, bien por falta de espacio o recursos, bien por cambio de proveedor. Para ello subversion nos ofrece varios comandos para realizar el proceso.

Como esta información ya existe en la red prefiero enlazaros al contenido original (mientras sea legal en España), en el que está muy bien explicado y me fue de mucha utilidad en su momento:

http://blog.wlacruz.com.ve/2011/10/migrar-o-mover-repositorio-de.html

ebook

Ebooks de desarrollo gratuitos

0

Al final, por mucho contenido que haya en internet, los desarrolladores terminamos tirando de libros. Por suerte para nuestros bolsillos hay páginas que nos ofrecen muchos conocimientos comprimidos en un ebook, como es el caso que os traigo hoy.

En esta web encontraréis una decena de  ebooks de desarrollo, desde SQL Server a Ensamblador, pasando por Windows Store, F#, Git, jQuery, etc.

Disfrutadlo, y recordad: el conocimiento os hará libres.

http://www.syncfusion.com/resources/techportal/ebooks?utm_medium=devmediaebOct13

Gnulinux

Crear un tunel por SSH por consola (GNU/Linux)

0

     Pues la verdad es que es bastante sencillo:

ssh -L 2022:servidordestino.com:22 usuario@servidorintermedio.com

     Con este comando indicamos que ssh nos cree una conexión por el puerto 2022 de nuestro equipo al puerto 22 de servidordestino.com, a través de servidorintermedio.com.

Después solo hay que escribir el siguiente comando:

ssh -l usuario -p 2022 localhost

     Esta línea indica a ssh que nos abra una conexión ssh por el puerto 2022 de localhost (nuestro ordenador). Esta conexión nos llevará a servidordestino.com que hemos indicado en el primer comando.

ubuntu logo

Añadir un tiempo de espera al menú de reparación de GRUB

0

Dispongo de un servidor de integración continua para mis proyectos y otras cosillas, el cual no tiene ningún periférico de entrada (teclado), con lo que me conecto a él a través de ssh, como $deity manda.

Sin embargo, el cabroncete, a veces entra en modo de solo lectura y me toca reiniciar. Esto provoca que salte el menú de reparación de grub, que en Ubuntu 12.04 (desconozco si lo hace en el resto de versiones) no tiene un contador para arrancar automáticamente con la primera opción del menú. Hoy he solucionado precisamente eso.

GRUB dispone de un archivo de configuración en /boot/grub/grub.cfg.

Buscamos el siguiente condicional:

1
terminal_output gfxterm
2
if [ "${recordfail}" = 1 ]; then
3
  set timeout=-1
4
else
5
  set timeout=2
6
fi
7

Bien, ese “-1″ es el que deberemos sustituir. Así que editaremos el archivo /etc/default/grub, donde se encuentran las variables por defecto de GRUB. Añadimos la siguiente variable:

GRUB_RECORDFAIL_TIMEOUT=10

Guardamos (recuerda que debes editar el archivo como root) y ejecutamos el siguiente comando (también como root) que generará el archivo de configuración de GRUB con los cambios ya realizados.
update-grub2

Y listo. Podéis verificar que el cambio se ha realizado visualizando el archivo /boot/grub/grub.cfg.

Así el cabroncete se iniciará de forma automática. Y no tendréis que estar conectándole un teclado y un monitor para ver que le pasa (a no ser que sea algo peor).

 

Optimización de WordPress

El widget de pestañas falla en el tema Mystique 3.2.9.3 para WordPress

0

El widget de pestañas permite mostrar en un mismo espacio, lo que habitualmente tendríamos que tener en varios widgets. En este blog se muestra en la columna de la derecha, donde podéis navegar por varios elementos que os ofrecen diversa información y contenidos del blog.

Pues bien, desde hace un tiempo, vengo observando como al pulsar en las pestañas, estas, simplemente, no hacen nada: no carga otro contenido, no hay navegación, etc.

Como no quiero aburriros con el proceso de búsqueda del error, voy al grano: dentro de wp-content/themes/mystique/js hay un archivo llamado jquery.atom.js. En este archivo localizamos las siguientes líneas:

1
$('.sections', tabs).css('height', $("#" + $('.navi li.active a', tabs).attr('href'), tabs).outerHeight(true));
2
 
3
var current = $("#" + $('.navi li.active', tabs).removeClass('active').find('a').attr('href'), tabs),
4
next = $("#" + $(this).parent('li').addClass('active').find('a').attr('href'), tabs);

Y las sustituis por las siguientes líneas:

 jQuery |  copy code |? 
1
$('.sections', tabs).css('height', $($('.navi li.active a', tabs).attr('href'), tabs).outerHeight(true));
2
 
3
var current = $($('.navi li.active', tabs).removeClass('active').find('a').attr('href'), tabs),
4
next = $($(this).parent('li').addClass('active').find('a').attr('href'), tabs);

Como ya habrás observado solo hay que eliminar la almohadilla que hay dentro de los selectores (“#” + ), que es lo que provoca que no funcionen las pestañas.

Tendrás que comprimir el archivo y llamarlo jquery.atom.min.js, para que al activar la opción de Mystique de “Optimizar el sitio web para carga rápida”, no vuelva a reproducirse el fallo. También puedes modificar este archivo a mano, aunque solo te lo recomiendo si sabes lo que estas haciendo.

Papercut

Papercut: Testear el envío de emails sin necesidad de un servidor SMTP

0

Papercut es un servidor SMTP simplificado para recibir emails, no para enviarlos. Esta aplicación nos permite probar el envío de emails desde los sistemas operativos Windows, quitándonos la tediosa tarea de tener que configurar un servidor SMTP.

Papercut dispone de una interfaz muy sencilla y cómodo, que nos permite comprobar todos los detalles del email que queremos testear: desde el contenido, hasta las cabeceras, pasando por los archivos adjuntos.

Muy útil ante la necesidad de probar el envío de emails de uno de nuestros proyectos de una forma rápida, o en un ordenador que no es en el que habitualmente trabajamos.

 

http://papercut.codeplex.com/

Drupal logo

Crear un rol de usuario en Drupal 7 sin usar la interfaz de administración

0

Normalmente cuando trabajamos con Drupal utilizamos la interfaz de administración para configurar nuestra aplicación web, y por norma general esto es suficiente para lo que queremos hacer. Sin embargo, en otros casos nos encontramos con que necesitamos generar nuevos roles de usuario (administrador, usuario identificado, etc.) además de los que vienen por defecto en Drupal, pero a través del código fuente, ya sea porque trabajamos dentro de un equipo de desarrollo y no tiene sentido estar compartiendo la bd entre todos los desarrolladores cada vez que se realiza un cambio de configuración (además de poco productivo terminará provocando perdidas de datos y errores), o porque estamos desarrollando un perfil de instalación y queremos reducir al mínimo los pasos manuales que hay que realizar para instalar nuestra aplicación web, por ejemplo.

Para ello debemos añadir a nuestra aplicación el siguiente código:

 

$new_user_role = new stdClass();
$new_user_role->name = 'moderator';
$new_user_role->weight = 4;
user_role_save($new_user_rol);

Como ves, el código es bastante sencillo. En primer lugar creamos una instancia de la clase stdClass(); a continuación le damos un nombre y un peso (recuerda que el rol de administrador es el 3, que es el más alto de lo roles por defecto de Drupal), y por último lo guardamos.

wordpress-logo-notext-rgb

Collapsing category list: Oculta y despliega las subcategorías de WordPress

1

Durante un tiempo estuve buscando un plugin para ocultar y desplegar las categorías con subcategorías en WordPress, por desgracia los plugins que probé o no funcionaban o estaban abandonados o solo funcionaban para unos themes concretos. Así que me decidí a crear el mío: Collapsing category list, es un pequeño plugin, en realidad un filtro para las categorías por defecto de WordPress que permite colapsar y desplegar las categorías con subcategorías

Categoría colapsada

Categoría colapsada

 

Categoría desplegada

Categoría desplegada

 

Si deseas descargarlo puedes acceder por esta URL: http://wordpress.org/extend/plugins/collapsing-category-list/

Debian logo

Discos duros en RAID en Debian

0

Os dejo un tutorial muy interesante y que he utilizado para configurar varios discos duros en RAID 1:

 

http://www.howtoforge.com/how-to-set-up-software-raid1-on-a-running-system-incl-grub2-configuration-debian-squeeze

Feed RSS de Mikel
Ir arriba