Mikel

Mikel

(64 comentarios, 196 entradas)

Este usuario no ha compartido ninguna información de perfil

Web: https://www.interadictos.es

Entradas de Mikel

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

 

Optimización de WordPress

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

4

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:

$('.sections', tabs).css('height', $("#" + $('.navi li.active a', tabs).attr('href'), tabs).outerHeight(true));

var current = $("#" + $('.navi li.active', tabs).removeClass('active').find('a').attr('href'), tabs),
next = $("#" + $(this).parent('li').addClass('active').find('a').attr('href'), tabs);

Y las sustituis por las siguientes líneas:

$('.sections', tabs).css('height', $($('.navi li.active a', tabs).attr('href'), tabs).outerHeight(true));

var current = $($('.navi li.active', tabs).removeClass('active').find('a').attr('href'), tabs),
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: 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.

Cron Job WordPress

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/

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

Cron Job WordPress

WordPress 3.x para desarrolladores: Plugins, conceptos básicos

0

Un plugin WordPress es un programa, o un conjunto de una o más funciones, escritas en el lenguaje de scripting PHP, que añade un conjunto específico de características o servicios para el weblog WordPress, los cuales pueden ser integrados sin problemas con el weblog usando puntos de acceso y métodos proporcionados por la API.

 

Nombres, archivos y ubicaciones

La primera tarea a la hora de crear un plugin de WordPress es pensar en qué va a hacer el plugin, y crear un (ojalá único) nombre para él. Compruebe en Plugin y en otros repositorios referidos en el enlace, que el nombre no exista ya; se puede hacer, también, una búsqueda en Google. Muchos desarrolladores eligen nombres que describen, de alguna manera, lo que hace el plugin; por ejemplo, un plugin que haga algo relacionado con el tiempo, podría llevar la palabra «tiempo» en su nombre. El nombre puede tener varias palabras.

 

El siguiente paso es crear un archivo PHP con un nombre, derivado del nombre que usted ha elegido para el plugin. Por ejemplo, si su plugin se llamará «funcionalidad maravillosa», usted podría nombrar al archivo PHP funcimara.php. De nuevo, intente elegir un nombre único. La gente que utilice su plugin, lo pondrá en el directorio de WordPress, en su instalación wp-content/plugins/, de forma que no puede haber dos plugin distintos con el mismo nombre de archivo PHP.

Otra opción es separar el plugin en varios archivos. Su plugin WordPress debe tener al menos un archivo PHP; además puede contener archivos JavaScript, archivos CSS, archivos de imagen, archivos de localización, etc. Si hay varios archivos, elija un nombre único para una carpeta de archivos y para el archivo PHP principal, tales como funcimara y funcimara.php en este ejemplo, coloque todos los archivos del plugin en la carpeta y diga a los usuarios que copien toda la carpeta en wp-content/plugins/.

En el resto de este artículo, nos referiremos al archivo PHP principal como «el archivo PHP del Plugin», ya esté en wp-content/plugins/ o en un subdirectorio.

 

Información Estándar del Plugin

Las primeras líneas del archivo PHP principal del plugin deben contener la cabecera estándar de información del plugin. Esta cabecera permite a WordPress reconocer que el plugin existe, y ponerlo en la pantalla de gestión para que pueda ser activado, cargado y ejecutar sus funciones. Sin esta cabecera, su plugin no podrá ser activado ni funcionar. Este es el formato de la cabecera:

<?php
/*
Plugin Name: Nombre del plugin
Plugin URI: http://URI_De_La_Página_Que_Describe_el_Plugin_y_Actualizaciones
Description: Una breve descripción del plugin.
Version: El número de versión del plugin e.j.: 1.0
Author: Nombre del autor del plugin
Author URI: http://URI_del_Autor_del_Plugin
License: Un nombre de licencia "pegadizo" e.j. GPL2
*/
?>

El mínimo de información que WordPress necesita para reconocer su plugin es el nombre del mismo. El resto de la información (si está presente) se utilizará para crear la tabla de plugin en la pantalla de gestión de plugins. El orden de las líneas no es importante.

La línea de licencia debería ser un identificador común, corto, para señalar bajo que licencia se distribuye el código y está destinado a ser una forma sencilla de ser explícito acerca de la licencia del mismo.

 

Sugerencias sobre Desarrollo de Plugin

Esta última sección contiene sugerencias aleatorias sobre el desarrollo de plugin.

  • El código de un plugin WordPress debería seguir los Estándar de WordPress Coding. Por favor, también considere los estándarDocumentación en Línea.
  • Todas las funciones en su plugin necesitan tener nombres únicos que sean diferentes de los de funciones del núcleo de WordPress, otros plugins y plantillas. Por esta razón, es una buena idea utilizar un prefijo de nombre de función en todos sus plugins. Otra posibilidad es definir sus funciones de plufin dentro de una clase (que, a su vez, necesita tener un nombre único).
  • No utilice el prefijo de bases de datos (normalmente «wp_»)de WordPress directamente en sus plugins. Asegúrese de que utiliza la variable $wpdb->prefijo en su lugar.
  • Leer la base de datos es barato, pero escribir es caro. Las bases de datos son excepcionalmente buenas recuperando datos y ofreciéndosela a usted y estas operaciones son (normalmente) veloces como el rayo. El hacer cambios en la base de datos, es un proceso más complejo, y más caro desde el punto de vista computacional. Como resultado, intente minimizar la cantidad deescritura que usted hace en la base de datos. Deje todo preparado en su código primero, de forma que usted hace las operaciones de escritura estrictamente necesarias.
  • SELECT solo lo que se necesita. A pesar de que las bases de dato recuperan información realmente rápido, usted debería intentar de reducir la carga sobre la base de datos, seleccionando solo la información sobre la que quiere trabajar. Si usted necesita únicamente contar el número de líneas de una tabla no haga SELECT * FROM, porque se cargarán todos los datos de cada registro, desaprovechando memoria. Así mismo, si solo necesita el post_id y el post_author en el plugin, simplemente SELECTesos campos específicos, para minimizar la carga de la base de datos. Recuerde: cientos de procesos diferentes pueden estar consultando la base de datos al mismo tiempo. La base de datos y el servidor tienen recursos limitados para atender dichos procesos. Aprender como minimizar el impacto de sus plugins en la base de datos asegurará que el suyo no sea el señalado como culpable de abuso de recursos.
  • Elimine errores de PHP en sus plugin. Añada define('WP_DEBUG', true); a su archivo wp-config.php, compruebe toda la funcionabilidad del plugin, y chequee si hay errores y/o avisos. Arregle cualquier incidencia y continue en modo debug hasta que se hayan eliminado todos los errores.
  • Intente no utilizar directamente las etiquetas <script> y <style> – en su lugar utilice las funciones recomendadaswp_enqueue_style() y wp_enqueue_script(). Estas ayudan a eliminar scripts y estilos duplicados y, además, introducen soporte de dependencias. Consulte post de las siguientes personas para más información: Ozh RichardsonArtem Russakovskii, yVladimir Prelovac.
Feed RSS de Mikel
Ir arriba