Habilitar o deshabilitar rápidamente todos los plugins de WordPress desde la base de datos

Cuando sufrimos el temido “pantallazo blanco de la muerte” de WordPress, podemos estar sufriendo, entre otros problemas, una incompatibilidad entre plugins o de un plugin en particular. No podemos acceder al panel de administración y necesitamos tratar de resolverlo cuanto antes. ¿Qué hacemos? Deshabilitar todos los plugins desde la base de datos. Veamos cómo hacerlo.

WordPress Plugins

Ésto puede ser también útil no sólo para problemas de pantallazos, sino para ahorrar tiempo en la habilitación o deshabilitación de plugins.

Veamos, lo primero que tenemos que hacer es acceder a nuestra base de datos. Con los datos de inicio de sesión que tiene WordPress almacenados internamente en “wp-config.php” podemos acceder usando un cliente como:

Leer más » 1 Comentario

Comprobar de qué tipo es una variable u objeto en C#

Cuando tenemos un objeto de tipo genérico Object en C#, podemos hacer con él las operaciones básicas de cada objeto pero en ocasiones, necesitaremos convertirlo en un objeto menos abstracto para poder hacer operaciones más concretas.

Aunque esta entrada no forma parte del curso de Mono, sí está muy relacionada con esta entrega dedicada a tipos de datos.

Si tenemos una variable u objeto y no sabemos su tipo con seguridad, disponemos de dos métodos que usaremos para ver cuál es realmente el tipo del mismo. Veamos:

Por ejemplo, ¿cómo saber si el objeto “auxiliar” es un entero con signo de 32 bits (el entero más estándar, el que usamos al poner int simplemente)?

Leer más » 4 Comentarios

SpiderOak, la alternativa real a Dropbox. Código promocional

Han sido muchas las alternativas que he probado, y no es que no esté contento con Dropbox, de hecho me parece un gran sistema, es rápido, sencillo y multiplataforma. Pero el espacio disponible y el precio por mes en el servicio de pago merecen una revisión por parte de sus creadores, un poco excesivo en los tiempos que corren. SpiderOak es una clara alternativa a este archiconocido sistema de backup y sincronización.

Hablamos hace tiempo sobre Ubuntu One, pero después de un tiempo usándolo, no me resulta práctico, y encima la cantidad de espacio free es mucho menor. Con lo que hace unos días lo eliminé definitivamente de mi sistema.

La opción real que he encontrado ha sido SpiderOak, una aplicación multiplataforma, con bastante espacio gratuito (de 5GB a 50GB**, abajo os explico como conseguirlo), bástante rápido y versátil.

Leer más » 8 Comentarios

Manejar la papelera de reciclaje por línea de comandos. Instalar trash-cli

Los que me seguís, ya sabréis de mi debilidad por intentar hacer las cosas de forma remota, preferencia por SSH y sin ningún servidor X, en cuyo caso el uso del terminal se hace necesario. Hace unos días os contaba cómo controlar el estado de la batería desde un terminal. y hoy haremos lo propio para manejar la papelera de reciclaje (trash).

La localización de la papelera en la versión antigua de Gnome se encuentra en ~/.Trash, y en las versiones recientes en ~/.local/share/Trash. Ahí, podemos encontrar dos subdirectorios llamados files e info. El directorio files contiene los archivos eliminados, mientras que info tiene los metadatos de los archivos eliminados.

Igual os puede resultar un poco engorroso acceder a éstos y hacerlo desde ahí, es por ello que os presento una utilidad llamada trash-cli, en la que podemos manejar de forma sencilla la papelera de nuestro sistema desde la línea de comandos.

Para instalar trash-cli en Ubuntu

Leer más » 5 Comentarios

Curso ADO.NET con Mono y MySQL – Creación del proyecto

Nos dirigimos a MonoDevelop y creamos una solución nueva, en C#, para consola. Elegís el nombre, el que le he puesto para el ejemplo es: ejemplo_mono_ado. Os aparecerá en pantalla un fichero de nombre: Main.cs junto a un árbol a la izquierda con características de la solución. Una de ellas, las referencias es donde importaremos el ensamblado.

Antes de seguir sería conveniente que copiarais al directorio del proyecto el fichero “mysql.data.dll” que venía dentro del paquete comprimido del conector. Os dirigís a referencias y haciendo clic sobre el mismo título “Referencias”, elegís “Editar referencias…”. De las tres pestañas que aparecen en el diálogo elegís “Ensamblado .NET” y os dirigís al directorio del proyecto o donde tengáis guardado el fichero. Lo elegís y lo añadís.

Aspecto interfaz MonoDevelop

Leer más » 6 Comentarios

Combina y comprime todos los ficheros CSS y JS para optimizar WordPress con WP Minify

Cada vez que accedemos a una web, independientemente del CMS que usemos (como si no usamos ninguno), el navegador empieza la descarga del sitio en HTML y todo lo que trae consigo (principalmente imágenes, hojas de estilo y ficheros de script del lado del cliente como JavaScript) mediante protocolo HTTP.

¿Qué problema tiene HTTP? Para cada petición de este tipo, abre y cierra la conexión. ¿Eso qué conlleva? Un aumento del tiempo de transferencia.

Como se puede observar, el problema en parte es abordable ya que aunque no podemos (por ahora) reunir todas las imágenes en una sola transmisión, sí que es cierto que podemos hacer que si tenemos 4 ficheros de hojas de estilo CSS y 10 ficheros JavaScript que cargar; podemos limitarnos a enviar un sólo fichero de cada tipo al navegador. El resultado no cambia y aceleramos el proceso.

Si usamos WordPress, podemos instalar WP Minify para que automatice este proceso por nosotros y nos olvidemos, junto con otra mejora, comprime ambos ficheros resultantes lo que lleva a una mejora mayor aún de la ya comentada.

Podéis ver el efecto de usarlo en las capturas siguientes:

WP Minify antes y después

Leer más » 2 Comentarios

Paso por valor y paso por referencia con PHP

Si el otro día hablábamos de la facilidad de usar índices negativos en arrays a través PHP, hoy traemos otra receta para cocinar el paso por valor y el paso por referencia, algo que en algunos lenguajes, como C, es de vital importancia, y que en el caso de PHP nos puede servir de gran ayuda.

Para ilustrar claramente la diferencia entre paso por valor y paso por referencia en una función en PHP, vamos a usar un pequeño script. Prestemos especial atención a las llamadas sumarPorValor() y sumarPorReferencia(), que de entrada vemos como la definición de ambas es similar.

<?php

// Declaramos las funciones

function sumarPorValor($suma, $a, $b) {
  $suma = $a + $b
}

Leer más » 2 Comentarios

Indices negativos en un vector con PHP

En la mayoría de los lenguajes de programación de alto y bajo nivel, acceder a un elemento de un vector a través de un índice menor que cero implica acceder a una dirección de memoria que no hemos reservado, y en consecuencia almacenar en un lugar dónde no protegemos el contenido desde el mismo programa.

Para poder usar un índice negativo en el lenguaje C tendremos que declarar otro puntero auxiliar que acceda al espacio de memoria reservado por el anterior para que los menores que cero en ese rango sean equivalentes a sus análogos positivos. El código que ejemplifica este caso:

int a[10] = { /* lo inicializamos a lo que queramos */ };
int *b;
int i;
b = a + 10; /* aquí entra en juego el puntero auxiliar */
for (i = -10; i < 0; i++) {
int x = b[i];
}

Sencillo de entender, pero en PHP la cosa se simplifica con poder usarlo como si de un elemento ubicado en la zona positiva se tratase

Leer más » 3 Comentarios

Curso ADO.NET con Mono y MySQL – Preparación e instalación

Pasado más de un mes desde la entrada que anunciaba este curso, volvemos a la carga, veamos.

Antes de nada, de forma básica, vamos a revisar qué necesitamos, cómo obtenerlo y en caso necesario, cómo configurarlo. En este momento ,creo conveniente señalar que utilizaremos MonoDevelop,el entorno de desarrollo integrado para Mono más popular, en lugar de utilizar directamente el compilador, mcs; para centrarnos directamente en el desarrollo con ADO y dejar de lado los detalles que no son necesarios.

Logo MonoDevelop

Mono y MonoDevelop

En función de la distribución que utilicéis, las circunstancias particulares cambiaran, pero básicamente os comento dos alternativas que probablemente os sirvan prácticamente a todos. La primera es dirigiros a vuestro gestor de paquetes y buscar los paquetes correspondientes. Como monodevelop, que será más o menos así el nombre del paquete, depende de Mono, si elegís éste se os seleccionaran los demás paquetes necesarios para desarrollar y ejecutar programas con Mono. Es decir, básicamente instalando MonoDevelop a través del paquete homónimo, tendréis todo preparado. Además, es más que probable que tengáis instalado Mono en vuestro equipo por defecto. Por ejemplo, el entorno de escritorio Gnome utiliza esta tecnología ampliamente.

Leer más » 8 Comentarios

Controlar el estado de la batería por línea de comandos

Ayer tarde me estaba conectado de manera remota (por SSH) a mi portátil, pero estaba en otra habitación y me resultaba un poco engorroso tener que ir hacia allí simplemente para ver el tiempo de batería que me quedaba.

Fácil y sencillo. Usamos ACPI, sí, por línea de comandos. Abrimos un terminal y:

ahornero@6581-D:~$ acpi
Battery 0: Discharging, 40%, 00:44:46 remaining

Leer más » 5 Comentarios