Breve actualización de CodeMirror for Post Editor

CodeMirror for Post Editor es un plugin que creé hace algún tiempo para tener un mejor editor de código para los posts en WordPress.

Ayer subí la versión 0.4.1, que incluye un par de mejoras en la carga de scripts y de estilos, además de prepararlo para funcionar correctamente con WordPress 3.9 que ya está próximo a ser publicado (al parecer, durante esta misma semana)… y si te quedas con WordPress 3.8+ también va a seguir funcionando tal como ahora.

Recuerda que puedes aportar al proyecto con informes de bugs o solicitud de nuevas características a través de GitHub.

AJAX y WordPress, de la manera correcta

Hay múltiples formas de implementar interacciones en AJAX con WordPress… muchas son malas, otras son horribles, algunas profundamente aberrantes y unas pocas son correctas.

En el grupo de las malas, horribles y aberrantes, encontramos todos aquellos métodos que tienen que ver con intentar hacer las cosas de algún modo ingenioso, y no aprovechando las funcionalidades propias de WordPress, por ejemplo: enviando una petición a un archivo en la carpeta de un plugin o tema o capturando parámetros al descubierto.

Los métodos correctos, por otra parte, se integran armoniosamente con WordPress y permiten utilizar sus características propias para facilitar el desarrollo y el funcionamiento de estas interacciones. En este sentido, probablemente la mejor forma de implementar peticiones AJAX es a través de /wp-admin/admin-ajax.php, ya que esto presenta varias ventajas:

Continue reading “AJAX y WordPress, de la manera correcta”

SummerCamp AyerViernes 2014

AyerViernes U es nuestra iniciativa de educación en las disciplinas que a diario usamos para resolver proyectos tanto web y aplicaciones sofisticadas como ClerkHotel. A ellas concurren Diseño UX y Desarrollo.

Este veranos hemos organizado un entretenido programa de cursos en Viña del Mar, el Summer Camp de AyerViernes que se llevará a cabo entre el 27 y el 31 de enero próximos en el Hotel Monterilla.

El programa incluye los cursos:

  • Implementación de sitio web con WordPress (desde cero)
  • Desarrollo de temas para WordPress
  • Desarrollo de plugins para WordPress
  • Desarrollo de plugins para WordPress
  • Desarrollo de plugins para jQuery
  • Integración de medios de pago en tu proyecto web
  • Diseño frontend con Less CSS
  • Arquitectura de la Información
  • Técnicas de evaluación de usabilidad

Pack WordPress

La idea es que en dos días intensos de este CMS Open Source te empapes de todo lo que necesitas saber para diseñar un tema, montar el sitio y hacer plugins. Si compras el pack te hacemos un descuento porque asistirás a tres cursos inmejorables.

Puedes ver el programa completo con los temas a tratar, fechas y relatores en nuestro sitio sobre este programa de cursos de usabilidad, UX, WordPress y medios de pago; y puedes hacer tus inscripciones a través de Welcu.

Generar IDs alfanuméricos con PHP o Javascript

Recientemente necesitaba generar identificadores únicos, breves, que no fueran dependientes del contenido, y no aleatorios… si bien podrían haber sido simplemente números enteros, además quería que no fueran explícitamente secuenciales.

Finalmente me decidí por utilizar números en base 36, una técnica bastante utilizada por servicios para acortar URLs, como TinyURL y otros. La gracia de este sistema es que puede representar números grandes en una secuencia de letras y números; y se puede lograr tanto en PHP como en Javascript (además de un montón de otros lenguajes).

Continue reading “Generar IDs alfanuméricos con PHP o Javascript”

Nuevo plugin para WordPress: Dashboard Posts Stats

Dashboard Posts Stats

Hace algunos días, necesitaba crear una forma de visualizar la cantidad de entradas publicadas en un sitio. Después de algunas líneas de PHP y Javascript, tenía un pequeño widget para el escritorio de WordPress funcionando, y tras un par de vueltas más decidí compartirlo como plugin.

El resultado es Dashboard Posts Stats que te permite ver la actividad de publicación durante los últimos 30 días.

Por el momento es muy sencillo, pero ciertamente hay varias ideas y pendientes que pretendo aplicar para hacerlo cada vez más útil.

Se puede descargar desde el repositorio de plugins de WordPress, y si tienes alguna idea, solicitud o contribución, puedes enviarla a su repositorio en GitHub.

E-book gratuito sobre WordPress y AJAX

Hace algunos días me tropecé con un e-book que ofrece una introducción bastante completa al trabajo con AJAX sobre WordPress, adecuadamente titulado WordPress & AJAX. An in-depth guide on using Ajax with WordPress, que se puede descargar gratuitamente en su totalidad, junto con sus ejemplos de código.

El libro se enfoca en lograr una buena base y fomentar buenas prácticas en el desarrollo plugins o funcionalidades con AJAX, y a partir de eso plantea el análisis de tres plugins. Si bien sus explicaciones son bastante detalladas, es necesario tener un conocimiento básico de javascript y WordPress, y algo más acabado de PHP.

Trabajar con fechas en Javascript

En AyerViernes estamos trabajando en un proyecto tan ambicioso como apasionante, lo que como siempre implica aprender nuevas técnicas, habilidades, etc; y en este caso un desafío interesante tenía que ver con trabajar de forma precisa con fechas a nivel de cliente.

El problema surge cuando pensamos en una fecha como una cadena de texto (por ejemplo 2010/06/12 asumiendo que estamos usando un formato año/mes/día como recomendaría la W3C) y necesitamos realizar algún cálculo con esa fecha, como sumar o calcular diferencia de días, ya que como sabemos, los meses pueden tener 30 o 31 días, Febrero tiene 28 (o 29 si es año bisiesto), etc… por lo que a 2010/06/12 no es tan fácil sumarle 60 días sin antes comprobar todas esas variables.

Sin embargo, el error fundamental ahí es nuestra primera suposición (tratar a una fecha como una cadena de texto o un conjunto de números), ya que estas dificultades se resuelven al trabajar con las fechas como objetos Date de Javascript.

Continue reading “Trabajar con fechas en Javascript”

Tres usos para jQuery.extend()

Tres ejemplos de algunas de las cosas que puedes hacer utilizando el método $.extend() de jQuery: fusionar objetos y arrays, utilizar opciones predeterminadas en una función y extender jQuery

$.extend() es uno de esas funciones de jQuery que quizás no son las que más utilizarías al comenzar a trabajar con este estupendo framework, pero que con el tiempo descubres que puede ser de inmensa ayuda, ya que es una solución simple a una tarea bastante común: mezclar objetos o arreglos.

Revisaré tres ejemplos de uso. Claramente, se puede utilizar en muchísimos casos más; como siempre, los comentarios quedan abiertos para aportes. Para una referencia completa, puedes echar un vistazo a su documentación.

Continue reading “Tres usos para jQuery.extend()”

Sitios web aún más rápidos

A propósito del post sobre la “sensación” de velocidad y los selectores eficientes que publicó recientemente Armonth en su blog, recordé una de las presentaciones de la Web 2.0 Expo en San Francisco de la que había visto sus diapositivas, y que hablaba más o menos del mismo tema.

La presentación estuvo a cargo de Steve Souders, quien trabaja en Google en iniciativas de código abierto y alta performance, es el creador de YSlow — una herramienta (plugin para Firebug) desarrollada por Yahoo! para medir la performance de un sitio — y especialista en sitios de alta performance.

Pueden ver la presentación en Slideshare o bien descargar la original desde la ficha técnica de su charla.

CDN para frameworks javascript

Ahorra ancho de banda y mejora la experiencia de tus usuarios utilizando la infraestructura de Google para servir tu framework javascript.

¿No sería genial que en lugar de tener que descargar una y otra vez los archivos de jQuery, mootools, prototype… estos estuvieran distribuidos de forma de ahorrarte en transferencia y aumentando la velocidad con que tus usuarios ven tu sitio?

Tras esta larga y rebuscada pregunta lo que se esconde es un servicio de Google del que no sabía hasta hace poco, pero que demuestra que a veces una pequeña idea puede traer grandes beneficios: se trata de AJAX Libraries API, una red de distribución de contenidos (Content Distribution Network, o CDN, para los amigos) y “arquitectura de carga” para algunas de los frameworks javascript más populares.

En pocas palabras, AJAX Libraries API permite que tus usuarios descarguen la librería javascript de tu elección desde la red de servidores de Google, para lo cual tienes dos opciones: hacerlo a través de google.load() (un método desarrollado por Google para facilitar la carga de acuerdo a dos parámetros, que especifican el framework y la versión que quieres) o bien directamente desde <script />. Por ejemplo:

Con google.load():

<script src="http://www.google.com/jsapi"></script>
<script>
	// Load jQuery
	google.load("jquery", "1");
</script>


...o directamente:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>

Continue reading “CDN para frameworks javascript”