PHP: The Right Way

PHP ha cambiado profundamente durante su existencia, lo que nos motiva a actualizar nuestros hábitos al escribirlo y aprovechar sus nuevas funcionalidades en la implementación de buenas prácticas. PHP: The Right Way es una referencia rápida de buenas prácticas, estándares de código y enlaces a tutoriales actualizados en el manejo de este lenguaje… si desarrollas sobre WordPress, márcalo como lectura obligatoria.

Recuperar revisiones perdidas en Bazaar

Como saben los regulares de este blog, hace bastante tiempo me he rendido ante Bazaar, el sistema de control de versiones distribuido creado por Canonical y parte del proyecto GNU; más poderoso que SVN, más simple que git… en fin.

Una secuencia de acciones me llevó a una situación terrible: por un momento pensé que había perdido un conjunto de cambios del historial. La condiciones fueron más o menos las siguientes:

  1. Estaba trabajando en una copia local sobre la cual no sabía que estaba bindeada a un repositorio remoto (o sea, un checkout)
  2. Hice commit de un conjunto de cambios (que se grabaron con número de revisión 5)
  3. Ejecuté un bzr bind, con lo se aplicaron una serie de cambios que estaban en el repositorio remoto
  4. La versión del repositorio local bajó a 4… ¡los cambios realizados en la 5ª versión no estaban en ninguna parte!

En resumen, lo que había ocurrido era que había cambiado de línea temporal (al mejor estilo Fringe). Transformar nuevamente la copia en una rama no solucionaba nada, sin embargo suponía que esa revisión debía existir en el repositorio…. ¿cómo restituirla?

Continue reading “Recuperar revisiones perdidas en Bazaar”

Personalizar las opciones del TouchPad Synaptics en Linux

El driver de TouchPad Synaptics para Linux ofrece muchas opciones, pero no todas están a la vista. Aquí van dos formas de acceder a más opciones para dejar tu TouchPad funcionando perfecto.

En las últimas versiones de Ubuntu, los TouchPad de Synaptics incluídos en mayoría de los computadores portátiles funcionan sin necesidad de instalar o modificar nada, gracias a un driver de código abierto que permite su utilización en entornos gráficos.

Sin embargo, es probable que quieras modificar alguna configuración, y aquí la cosa se pone un poco complicada (sólo un poco); pero en realidad este driver proporciona todas las opciones que podríamos necesitar de nuestro touchpad. Para ello, tenemos dos alternativas complementarias: GSynaptics y los ficheros de configuración de X.Org

Además, también hay un par de opciones disponibles a través de las preferencias de mouse, en Sistema → Preferencias → Ratón, bajo la pestaña Touchpad. Allí podrás des/habilitar el touchpad, el click con un toque y el desplazamiento horizontal/vertical.

Continue reading “Personalizar las opciones del TouchPad Synaptics en Linux”

Tres consejos para ser un buen (mejor) blogger

¿Qué consejos podemos dar a los nuevos bloggers que no repitan lo que todos ya han dicho? Aquí van tres sugerencias que van desde lo obvio a lo accesorio, pero que ojalá puedan ser valiosas.

En general no soy muy adepto a seguir memes (sobre todo si no me lo han enviado personalmente), pero de vez en cuando es bueno romper la rutina. En particular éste lo he visto en dos blogs que sigo (a través del Planet Webdev), adseok y Webmaster Libre, y tras leer sus consejos empecé a pensar qué era lo que yo habría respondido… y aquí estoy, respondiendo:

  1. Escribe sobre lo que haces: si ésta no es [la clave del éxito->] seguramente es uno de los factores más importantes. La cuestión es simple: de lo que haces, sabes, o has tenido que aprender algo para poder hacerlo… y sorprendentemente, es bastante probable (aunque no lo parezca) que a varias personas les vaya a interesar cómo lograste crear, hacer funcionar, modificar, etc., lo que sea que hayas hecho. En serio.
  2. A nadie le importa que no escribas hace dos meses: bueno, quizás a algunas personas sí. Lo que trato de decir es que si por algún motivo has dejado de lado tu blog por algún tiempo, no pienses que debes hacer un gran regreso, es probable que si hayas estado alejado un rato hayas perdido algo de la costumbre o la facilidad para escribir que tenías cuando eras más regular; tratar de escribir un artículo extenso y muy completo puede resultar frustrante y mantenerte alejado por más tiempo, y en verdad, si tan solo retomas tu ritmo probablemente va a ser suficiente para volver a convocar a tus lectores habituales.
  3. Crea tu propio theme o modifica uno existente, pero no te quedes con el mismo “look” que otros cien blogs, a menos que quieras camuflarte entre ellos. Y cuando digo “modifica uno existente”, quiero decir “haz algo más que ponerle tu nombre, cambiar la imagen de la cabecera y el esquema de colores”, o al menos, todo eso junto; el tema predeterminado de WordPress está bien para empezar, pero si lo ves en todos lados es difícil asociar una persona o un artículo con un blog en particular; no se trata “solamente” de diseño o estética, sino de identidad. The Sandbox puede ser un excelente punto de partida. Esto te puede hacer aprender muchísimo, y tendrás algo de lo que escribir. Y si te queda algo realmente bueno, puedes publicarlo para que otros lo utilicen como su punto de partida.

He tratado de no repetir lo que indican todos los consejos para bloggers, puedes estar de acuerdo o no, discutámoslo. Y a todo esto… ¿qué aconsejarías tú?

Manuales de PHP

Una lista de tutoriales en línea para aprender PHP; gratuitos y en español… algo bueno debería salir de esto.

A pesar de haber hecho un par de temas para WordPress, cada vez que veo ante mis ojos un editor de texto con resaltado de código me mareo, simplemente porque cada vez debo volver a aprender lo poco y nada que sé de PHP, y mi “método” de desarrollo es esencialmente consultar el Codex más ensayo y error.

Varias veces me he quedado con ganas de implementar funcionalidades más avanzadas, hacer algún plugin, etc. Pero para ello es necesario aprender, y aunque claramente no sean la fuente definitiva del conocimiento, seguramente de algo me servirán algunos de los múltiples manuales que hay disponibles en internet.

Si quieres aprender sobre funciones, cadenas, arrays y esas cosas, éste podría ser un punto para comenzar —todos gratis (por supuesto) y en español.

Seguro que hay algún otro por ahí… si conoces alguno, recomiéndalo en los comentarios 😉

Actualización: para los que dominen el inglés, pueden encontrar una buena lista de tutoriales sobre PHP en The Learn List.

Cómo crear títulos para Unsleepable

Títulos para Unsleepable, con bordes suaves y cambiando de color Por lo visto, a más de alguno le ha gustado [Unsleepable->Unsleepable: un theme para WordPress (en español)], el theme para WordPress que traduje al español —se los agradezco. Para ustedes, un tutorial para crear el título del theme, tal como lo pueden ver en la página del autor original o en este mismo sitio, es decir, con la posibilidad de cambiar el color del fondo al pasar por encima y con los bordes de las letras suavizados.

Para esto, utilizaremos Photoshop, pero creo que, con ligeras variaciones, se puede conseguir lo mismo con GIMP.
Continue reading “Cómo crear títulos para Unsleepable”

Optimizar automáticamente tu base de datos

Mantener optimizada la base de datos es siempre una buena idea, pero probablemente no nos acordamos de hacerlo con la frecuencia que necesitaríamos. Ésta es una forma para hacerlo automáticamente.

Una de las lecciones que se propagó por la blogósfera hispanoparlante tras el caos producido por los anuncios de alto consumo de CPU por parte de WordPress es la importancia de mantener una base de datos optimizada. Sin embargo, como bloggers, seguramente pasamos más tiempo frente a un formulario para escribir posts que preocupándonos de este tipo de detalles. Por suerte, existen formas de automatizar este proceso.

¿Por qué optimizar?

Fue Marcos Sader quien destacó el peso fundamental de esta acción: en su post sobre “acelerar” WordPress, reporta un descenso en el consumo de CPU de alrededor de 200 minutos tras optimizar la base de datos. Pero ¿qué es esto, en definitiva?

Yo mismo no lo se muy bien, por lo que me he remitido a la documentación de MySQL, en el que nos indican lo siguiente:

OPTIMIZE TABLE debe ser usado si ha borrado una gran parte de una tabla o si ha hecho muchos cambios a una tabla con filas de longitud variable (tablas que tienen columnas VARCHAR, BLOB o TEXT). Los registros borrados son mantenidos en una lista enlazada y las subsecuentes operaciones INSERT reusan las posiciones de los registros anteriores. Puede utilizar OPTIMIZE TABLE para reclamar ese espacio inutilizado y para desgragmentar el archivo con los datos.

MySQL 3.23, 4.0, 4.1 Reference Manual :: 13.5.2.5 OPTIMIZE TABLE Syntax

Optimizar automáticamente

Debo apuntar que este método se basa en el uso de Cron, un administrador regular de procesos en segundo plano (“demonio”) que ejecuta programas a intervalos regulares (por ejemplo, cada minuto, día, semana o mes), por lo que sólo servirá a quienes tengan acceso a SSH u otra forma de instalar trabajos periódicos. Dicho esto, los pasos para instalar un trabajo que optimize nuestra base de datos periódicamente son los siguientes:

  1. Primero, debemos crear un archivo que contenga las instrucciones para optimizar nuestra base de datos. Llamémosle optimize.sql, y lo dejaremos en nuestro directorio de usuario (generalmente, algo así como /home/usuario/
  2. Las instrucciones que debe contener ese archivo son las siguientes:

    USE basededatos;
    OPTIMIZE TABLE 'wp_categories' , 'wp_comments' , 'wp_linkcategories' , 'wp_linkfeeds' , 'wp_links' , 'wp_options' , 'wp_post2cat' , 'wp_postmeta' , 'wp_posts' , 'wp_users';

    Esas son todas las tablas que tiene por defecto una instalación de WordPress (y quizás alguna que se me haya pasado y que sea de algún plugin). Por supuesto, hay que cambiar basededatos por el nombre de tu base de datos.

  3. Lo siguiente es crear el cron. Para ello, nos conectamos vía SSH y tecleamos crontab -e.
  4. Una vez ahí, creamos el cronjob, de una manera similar a la siguiente:

    * * * * 4 mysql -u usuario_de_mysql -p password_de_mysql -h mysql.example.com </home/usuario/optimize.sql >/dev/null 2>&1

    Todo esto debe ir en una sola línea, reemplazando los valores que correspondan (en negritas) por los que correspondan a nuestro caso.

  5. Guardamos el trabajo, y listo. Podemos comprobar si quedó instalado ejecutando crontab -l
  6. El ejemplo citado hace que todos los jueves se ejecute el archivo optimize.sql, el que optimiza las tablas de nuestra instalación de WordPress. En caso de tener más tablas que las que vienen por defecto (lo que sucede, por ejemplo, si tienes instalado el plugin Bad Behavior) sólo debes agregarla a la lista. Esto es especialmente recomendable en casos de plugins anti-spam o de estadísticas.

Eso es todo. Ojalá les sirva. Si alguien sabe otros métodos (quizás con el plugin WP-Cron) o encuentra algún error, ¡no duden en comentarlo!

Ordenar elementos alfabéticamente en Word

Este es un truco ideal para cuando estamos creando la lista de referencias bibliográficas para un trabajo y queremos ordenarlas alfabéticamente… en tres clicks.

Una de la principales motivaciones de montar este weblog es compartir mi limitado conocimiento, publicar aquel dato útil o práctico que puede hacernos la vida un poquito más fácil. Pues bien, aquí va uno de ellos.

juque § weblog: Transponer elementos en Excel

Compartiendo la motivación de Juque, y copiándole sin ningún asco la idea (porque es re’buena), aquí va un tip:

Si alguna vez les ha tocado hacer un trabajo en el que deben citar a los autores de quienes han ocupado ideas o les han servido como soporte teórico —y supongo que a todos les ha tocado— este es un pequeño “truco” que resulta ideal para ordenar esta lista alfabéticamente. Por supuesto, también sirve para otras ocasiones, pero esto es para lo que más lo he ocupado.

Continue reading “Ordenar elementos alfabéticamente en Word”