Mikel

(64 comentarios, 192 entradas)

Este usuario no ha compartido ninguna información de perfil

Web: http://interadictos.es

Entradas de Mikel

Integración continua: Introducción

0

Supongo que os preguntaréis qué es eso de la integración continua, pues bien, os explico: se considera Integración Continua al conjunto de metodologías y procesos que se ejecutan durante el desarrollo de un proyecto de programación, con la diferencia de que estos procesos están centralizados y automatizados, lo que permite ejecutarlos cada pocas horas.

Dentro de los procesos automatizados se encuentran la descarga de los repositorios, la comprobación de los estándares de codificación, la ejecución de los test unitarios, la actualización de la base de datos, el despliegue al servidor de producción, etc. Cualquier proceso que se ejecute durante el desarrollo de un proyecto se puede integrar en este sistema.

Esta forma de trabajar nos permite a los desarrolladores detectar, antes de poner en producción el proyecto, posibles errores o ineficiencias, pudiendo solucionarlos y mejorando con ello la calidad del software que generamos.

Sirva este pequeño artículo como introducción a esta nueva sección del blog, ya que durante las próximas semanas iré publicando nuevos artículos para que podáis montar vuestro propio servidor de integración continua, me centraré en la automatización de procesos en proyectos PHP, ya sean basados en Frameworks (Symfony, Zend, etc.), CMS (WordPress, PrestaShop, etc.) o creados desde cero, aunque es muy posible que muchas cosas de las que os explique podáis utilizarlas para otros lenguajes de programación. Os explicaré tanto la instalación del software necesario como su configuración, además de como unir todo el software para que se ejecute de forma automática.

De momento os dejo con varios links para que le vayáis echando un ojo a eso de la Integración Continua:

– http://es.wikipedia.org/wiki/Integraci%C3%B3n_continua

Desarrollo PHP avanzado

Votaciones en el Congreso de los Diputados en 2013: ¿PP y PSOE votan lo mismo?

0

En el anterior post hablé de las votaciones en el Congreso de los Diputados en 2012, en las que se mostraba como la coincidencia del voto entre PP y PSOE no llegaba ni al 3%. Ahora veremos las de 2013.

Hace un tiempo se publicó que en el Parlamento Europeo los dos grandes partidos (PPE y PS&D) votaban lo mismo en el 70% de las ocasiones. Sin embargo, poco o nada se ha comentado respecto a las votaciones en el Parlamento Español. Ante esta falta de datos me he puesto a investigar y ver si podía obtener la misma información y un porcentaje cercano al del Parlamento Europeo.

En primer lugar es necesario saber de dónde obtener estos datos: http://www.congreso.es

En esa web se pueden descargar las votaciones realizadas en el Congreso de los Diputados. Sin embargo, solo es posible obtener las votaciones desde el 2012 hasta la actualidad, con lo que solo tenemos datos de un par de años.

No os voy a aburrir con el proceso para obtener esas votaciones y guardarlas en una base de datos. Para el que desee utilizar los datos puede acceder a esta hoja de cálculo: https://docs.google.com/spreadsheets/d/1-7TpVUuZu01YB0BSldw5ZAoXDeFl0gLUXJRWzr1sBoU/edit?usp=sharing

LAS VOTACIONES

En 2013 se realizaron 1467 votaciones en el Congreso de los Diputados de las cuales 23 son por asentimiento, es decir, no se vota, simplemente el Ministro correspondiente asiente con la cabeza. Por tanto tenemos 1444 votaciones en las que los Diputados tuvieron la oportunidad de decidir sobre cuestiones muy variadas.

De esas 1444 votaciones, en 347 de ellas el Partido Popular y el Partido Socialista votaron lo mismo, eso es un 24’03% muy lejos del 70% del Parlamento Europeo.

LA ASISTENCIA

En el 2013 votaron en el Congreso 354 Diputados, esto es debido a que se produjo la sustitución o baja de 4 Diputados durante el transcurso del año. Sobre el total de Diputados habitual en el Congreso, 350, ningún diputado asistió a todas las votaciones, aunque habría que valorar si entre los cuatro Diputados sustituidos y sus sustitutos sumarían suficientes asistencias para haber asistido a todas las votaciones.

Os dejo el top-ten de asistencia de los Diputados para las votaciones de 2013:

Nombre Apellidos Asiento Grupo Fecha de la primera votación en la que participa Número de votaciones en las que está presente Número de votaciones en las que no está presente
Mariano Rajoy Brey 3108 GP 11/01/2012 103 1318
Iker Urbina Fernández 2804 GMx 11/01/2012 182 1239
Maite Ariztegui Larrañaga 2703 GMx 11/01/2012 219 1202
Meritxell Batet Lamaña 1713 GS 11/01/2012 428 993
María Pilar Alegría Continente 1404 GS 11/01/2012 497 924
Elena Valenciano Martínez-Orozco 1207 GS 11/01/2012 563 858
María Isabel López i Chamosa 1714 GS 11/01/2012 666 755
Alfonso Guerra González 1401 GS 11/01/2012 723 698
Onintza Enbeita Maguregi 2601 GMx 21/06/2012 766 655
Xabier Mikel Errekondo Saltsamendi 2602 GMx 11/01/2012 786 635

Cambiando todo el hardware del ordenador en Debian 7 Wheezy

0

Después de unos cuantos años sin renovar el hardware del pc, este mes tocó renovación, y a lo grande. Principalmente por el final de soporte de Windows XP y que para algunos proyectos (y juegos… ejem, ejem) necesitaba más memoria RAM.

He dedicado bastantes horas a valorar que hardware comprar y que no se me fuese de presupuesto. Al final me decidí por lo siguiente:

Micro AMD FX 8350 Black Edition (8 nucleos)

Placa base ASUS M5A99FX PRO R2.0

Tarjeta gráfica ASUS GeForce NVIDIA GTX 780

– Fuente de alimentación Aerocool Strike-X 800

Y torre nueva: Aerocool Strike-X Advance

Los discos duros, aunque ya han superado su edad de vida media, aun funcionan, así que de momento no se tocan.

La instalación fue relativamente sencilla, aunque como ocurre siempre en un equipo de hace seis años, siempre hay algo que no funciona en el hardware nuevo. Uno de ellos fue uno de los discos duros, que por alguna extraña razón la placa no me lo reconocía. Por suerte solo era un disco para almacenar chorradillas que no se donde meterlas.

Una vez conectados los discos duros y que todo estuviera bien conectado, crucé los dedos y pulse el interruptor de la torre… se encendió a la primera, la placa base, los leds azules de la la torre, los ventiladores, el cooler, la gráfica, los discos duros,… espera… ¿Y ese pantallazo azul?… Mierda, Windows XP ha cascao, seguro que tenía alguna librería en el disco duro que no reconocía la placa, en fin, ¡Larga vida a Debian 7!

La verdad es que no fue un gran problema que Windows XP muriese en el proceso, al fin y al cabo llevaba tiempo queriendo cambiar definitivamente a Debian, así que fue una razón más para abandonar Windows por algo mucho mejor.

Aunque leí que cambiar el hardware en Debian no tenía por qué suponer un problema, es decir, que al entrar en el Sistema Operativo todo funcionaría igual; mi experiencia me decía que esto iba a cascar por todos lados.

Bueno pues me equivoqué a medias: el cambio de hardware hizo que se mostrasen algunos fallos (el módulo del kernel para la tarjeta de red, por ejemplo), pero solo fallo por un lado: la tarjeta gráfica, que impedía que se iniciase el servidor gráfico.

Y es que Debian 7 Wheezy no reconocía la gráfica debido a que los drivers de nvidia en Wheezy solo llegan hasta la 302, y para que me la reconociese necesitaba mínimo la 319, que es la que da soporte a la GTX 780.

¿Solución? Actualizar a Debian 8 Jessie, o lo que es lo mismo: pasar de stable a testing. He de decir que Jessie es bastante estable, y sabiendo que está previsto que se congele la inclusión de nuevos paquetes en esta rama hacia Noviembre de 2014, no había riesgo de que fallase por otro lado.

En primer lugar hay que editar el archivo /etc/apt/sources.list y sustituir la palabra «wheezy» por «jessie«, y «stable» por «testing«.

Hacemos un apt-get update, y si todo ha ido bien ejecutamos apt-get dist-upgrade, y a esperar que se descargue e instale todo.

Una vez instalado todo, seguiremos sin gráfica y sin servidor gráfico. Primero comprobamos que ahora sí reconoce la gráfica escribiendo en la consola el siguiente comando: lspci | grep «VGA».

Este comando nos debe mostrar el modelo de tarjeta gráfica que tenemos.

Y a partir de aquí es hora de configurar la gráfica. Para ello os voy a dejar un artículo que me ha ayudado muchísimo a la hora de configurarla y se merece que le enlace; los pasos a seguir ya sea en Debian 7 Wheezy o Debian 8 Jessie son los mismos, con lo que espero que este tutorial os valga tanto como me ha servido a mí:

Instalar los drivers nvidia privativos en Debian

Votaciones en el Congreso de los Diputados en 2012: ¿PP y PSOE votan lo mismo?

1

Hace un tiempo se publicó que en el Parlamento Europeo los dos grandes partidos (PPE y PS&D) votaban lo mismo en el 70% de las ocasiones. Sin embargo, poco o nada se ha comentado respecto a las votaciones en el Parlamento Español. Ante esta falta de datos me he puesto a investigar y ver si podía obtener la misma información y un porcentaje cercano al del Parlamento Europeo.

En primer lugar es necesario saber de dónde obtener estos datos: http://www.congreso.es

En esa web se pueden descargar las votaciones realizadas en el Congreso de los Diputados. Sin embargo, solo es posible obtener las votaciones desde el 2012 hasta la actualidad, con lo que solo tenemos datos de un par de años.

No os voy a aburrir con el proceso para obtener esas votaciones y guardarlas en una base de datos. Para el que desee utilizar los datos puede acceder a esta hoja de cálculo: https://docs.google.com/spreadsheets/d/1-7TpVUuZu01YB0BSldw5ZAoXDeFl0gLUXJRWzr1sBoU/edit?usp=sharing

LAS VOTACIONES

En 2012 se realizaron 1510 votaciones en 80 sesiones en el Congreso de los Diputados, de las cuales 32 son por asentimiento, es decir, no se vota, simplemente el Ministro correspondiente asiente con la cabeza. Por tanto tenemos 1478 votaciones en las que los Diputados tuvieron la oportunidad de decidir sobre cuestiones muy variadas.

De esas 1478 votaciones, en 39 de ellas el Partido Popular y el Partido Socialista votaron lo mismo, eso es un 2’64% muy lejos del 70% del Parlamento Europeo.

El Partido Popular no se abstuvo en ninguna votación, a excepción de algunos Diputados de este partido que sí lo hicieron. Sin embargo el Partido Socialista se abstuvo en seis ocasiones.

LA ASISTENCIA

En el 2012 votaron en el Congreso 370 Diputados, esto es debido a que se produjo la sustitución o baja de 20 Diputados durante el transcurso del año. Sobre el total de Diputados habitual en el Congreso, 350, asistieron a todos las votaciones 28 Diputados, a los cuales habría que añadir los 20 Diputados sustituidos, siempre y cuando tanto el primer Diputado como su sustituto hubieran asistido a todas las votaciones. Esto nos indica que entre 28 y 48 Diputados asistieron a todas las votaciones, siempre excluyendo las votaciones por asentimiento.

El top-ten de faltas de asistencias es el siguiente:

Nombre Apellidos Asiento Grupo Fecha de la primera votación en la que participa Número de votaciones en las que está presente Número de votaciones en las que no está presente
Xabier Mikel Errekondo Saltsamendi 2602 GMx 11/01/2012 274 1204
Iker Urbina Fernández 2804 GMx 11/01/2012 362 1116
Maite Ariztegui Larrañaga 2703 GMx 11/01/2012 471 1007
Sabino Cuadra Lasarte 2704 GMx 11/01/2012 534 944
Mariano Rajoy Brey 3108 GP 11/01/2012 576 902
Jon Iñarritu García 2805 GMx 11/01/2012 640 838
María del Carmen Silva Rego 7 GS 11/01/2012 748 730
Elena Valenciano Martínez-Orozco 1207 GS 11/01/2012 794 684
Rafael Larreina Valderrama 2603 GMx 11/01/2012 817 661
Montserrat Surroca i Comas 2306 GC-CiU 11/01/2012 819 659

Abrir carpeta desde cmd (Windows) o terminal (Linux, MacOS)

4

Algo muy habitual que hacemos con la consola, ya se en Windows, Linux o MacOS es recorrer directorios en busca de algún archivo. Aquí te explicaré como poder hacerlo.

Si lo que buscas es poder abrir una ventana de MS-DOS desde el explorador de Windows, te recomiendo el siguiente post: ¿Cómo abro una ventana de MS-DOS desde una carpeta?

 

En Windows:

Para desplazarnos por los directorios o carpetas en la consola de Windows utilizamos el comando «cd» seguido por la ruta de la carpeta a la que queramos acceder. Por ejemplo, si queremos acceder a la carpeta Windows escribiríamos el siguiente comando en la consola:

 

cd c:/windows

 

Si el nombre de la carpeta tiene espacios podemos utilizar la barra invertida (\) para indicarle a la terminal que el espacio en blanco siguiente es parte del nombre del directorio. Por ejemplo:

 

cd c:/Archivos\ de\ Programa

 

En Linux y MacOS:

MacOs tiene un kernel GNU/Linux y por tanto estas instrucciones sirven igual. Para acceder a una carpeta utilizaríamos en mismo comando «cd». Ejemplo:

 

cd /var

 

Si el nombre del directorio tiene espacios utilizaremos el mismo sistema para escapar el espacio en blanco del nombre:

 

cd /tmp/carpeta\ nueva

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.

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

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

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

1

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.

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:

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

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).

 

Feed RSS de Mikel
Ir arriba