Categories
Desarrollo de Software Miniposts WordPress

Enlaces varios

Algunos enlaces que posiblemente les resulten interesantes:

  • Descarga gratuita del libro Domain Driven Design Quickly: Un libro de introducción para DDD, incluye los siguientes capítulos:
    1. Building Domain Knowledge
    2. The Ubiquitous Language
    3. Model Driven Design
    4. Refactoring Toward Deeper Insight
    5. Preserving Model Integrity
    6. Interview with Eric Evans on why DDD matters today
  • Screencast: Test-Driven Domain Model: un screencast (idioma: inglés, duración: 50 minutos, lenguaje: C#) que muestra un ejemplo introductorio sobre el desarrollo orientado a pruebas.
  • C# Intellisense Test: comentan como realizan las pruebas que se hacen sobre el intellisense para C#.
  • Historial de funciones de WordPress: herramienta útil para los que desarrollan plugins de WordPress y quieren mantener la compatibilidad con versiones anteriores.
Categories
Spam Web WordPress

Spam y Trackbacks

En el último incidente que tuve me recomendaron varias alternativas para reducir el spam que llega a este blog y desde el momento que puse en práctica algunas de éstas (cambiar el nombre de uno de los campos de los comentarios), el número de comentarios spam enviados directamente a wp-comments-post.php literalmente desapareció, pero todavía siguen llegando trackbacks no válidos.

En base a un archivo modificado de wp-trackback.php que me envió Maty, hice unos cambios a éste para que haga casi lo mismo que el plugin Trackback Validator, que básicamente verifica que el sitio que envía la petición contenga un enlace recíproco a la entrada a la que se hace referencia (ver el paper para mayores detalles). La limitación de este método, tal y como reconoce una de las personas que participó en ese proyecto, es que puede evadirse fácilmente de diferentes modos (con CSS, comentarios HTML, JavaScript, generación dinámica de contenidos, etc).

Estos días estuve recibiendo spam de distintos sitios (supongo del mismo spammer), que generan temporalmente enlaces para los trackbacks que envían, logrando de este modo pasar las validaciones de la presencia de enlaces recíprocos, vean por ejemplo las últimas líneas que aparecen en el siguiente log de acciones:

code:

[2007-09-26 06:29:52] 64.22.110.2
[2007-09-26 06:29:52] Array
(
    [title] => Web Hosting Reviews, Web Site Hosting
    [url] => http://sitio_eliminado/
    [excerpt] => I couldn\'t understand some parts of this article, but it sounds interesting
    [blog_name] => Web Hosting Reviews, Web Site Hosting
)

[2007-09-26 06:29:55] http\://www\.buayacorp\.com/archivos/edicion-12-de-architechture-journal/

[2007-09-26 06:29:55] Array
(
    [0] => <a href='http://www.buayacorp.com/archivos/edicion-12-de-architechture-journal/trackback/'>link 3656</a>
    [1] => link 3656
)

Una forma de mejorar este método de verificación de trackbacks supongo que sería añadiendo una lista negra de dominios/IP/palabras, aunque en realidad no sé si valga la pena implementar algo así por el momento, puesto que los comentarios/trackbacks que logran saltar esta primera comprobación, son capturados Akismet.

Categories
WordPress

WordPress 2.3: privacidad, problemas y otros

A estas alturas supongo que seré uno de los últimos de los que aburra con este tema 😀 , pero la salida de WordPress 2.3 ha generado -- como esperaba luego de leer la lista de correo -- bastante polémica por que el nuevo sistema de actualizaciones envía ciertos datos* a api.wordpress.org.

Privacidad

A pesar de que el código para la notificación de actualizaciones está en el repositorio desde el 22 de agosto, este incidente empezó día anterior al lanzamiento de esta versión con opiniones divididas -- incluso entre los desarrolladores -- sobre si es necesario y sobre todo, si es correcto o no que éstos datos se envíen sin el consentimiento de los usuarios. Lo malo de todo este revuelo que se armó es que hasta dos horas antes del lanzamiento, ninguno de los que reclamaba que quitaran esta característica propuso un parche; por otro lado también hubo respuestas inadecuadas por parte de Matt Mullenweg, en especial esta:

If you don’t trust wordpress.org, I suggest you do one of the following:

  • Use different software.
  • Fork WordPress.
  • Install one of the aforementioned plugins.

Problemas

Esta versión trae consigo importantes cambios en el esquema de la base de datos, por lo que es necesario antes de actualizar, asegurarse que los plugins y tema usados sean compatibles.

Andrés recopiló una serie de errores que muchos usuarios parecen compartir, adicionalmente a esto si alguien se encuentra con el siguiente error no tiene porque preocuparse (probablemente es parte de un bug antiguo que permitía agregar dos veces la misma categoría a una entrada).

code:

WordPress database error: [Duplicate entry 'post_id-category_id' for key 1]
INSERT INTO wp_term_relationships (object_id, term_taxonomy_id)
VALUES ('post_id', 'category_id')

Personalmente les sugiero que primero hagan pruebas locales antes de actualizar sus blogs, pueden seguir el artículo "5 Step Failsafe upgrade for WordPress" para esto, pero sólo tomen en cuenta los últimos cuatro pasos (por ningún motivo realicen el paso 1 con la alternativa que se menciona ahí, o al menos no lo mantengan activado luego de terminar de actualizar).

Consumo de memoria

Me ha llamado la atención otra vez los datos que publica Andrés con respecto al incremento de memoria de WordPress 2.3, según sus pruebas esta última versión consume casi el doble de memoria que la anterior versión:

code:

//Wordpress 2.2
Memoria usada: 2981.4 KB de 3328 KB

//Wordress 2.3
Memoria usada: 6743.2 KB de 6912 KB

Personalmente creo que hay algo raro en su entorno de pruebas 🙂 , puesto que tanto en DreamHost, en este servidor y la máquina virtual que uso, WordPress 2.2 recién instalado y con el tema por omisión consume alrededor de 4530 KB y WordPress 2.3 está por los 5180 KB, con lo cual el incremento de memoria no es tan dramático para blogs pequeños como éste (blogs más populares tampoco tienen porque preocuparse si usan wp-cache).

Una forma de reducir un poco más el consumo de memoria de blogs que usan archivos de traducción, es traducir sólo el texto necesario (fechas principalmente) y eliminar las demás palabras, pueden descargar estos archivos que actualmente uso para el blog:

Categories
WordPress

Habilitar el soporte de Tags en Windows Live Writer para WordPress 2.3

Actualización: Existe una versión un poco más completa de este archivo en http://trac.wordpress.org/ticket/5023.

Para habilitar el soporte de tags en Windows Live Writer para blogs que usan WordPress 2.3, simplemente tienen que subir un fichero con el nombre wlwmanifest.xml en la raíz de vuestros blogs o pueden especificar una ruta distinta del siguiente modo:

html:

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="ruta/wlwmanifest.xml" />

El mencionado fichero contiene una serie de propiedades que permiten personalizar la funcionalidad de Windows Live Writer:

xml:

<?xml version="1.0" encoding="UTF-8"?>
<manifest xmlns="http://schemas.microsoft.com/wlw/manifest/weblog">
        <options>
              <supportsKeywords>Yes</supportsKeywords>
                <supportsFileUpload>Yes</supportsFileUpload>
                <supportsExtendedEntries>Yes</supportsExtendedEntries>
                <supportsCustomDate>Yes</supportsCustomDate>
                <supportsCategories>Yes</supportsCategories>
                <supportsCategoriesInline>Yes</supportsCategoriesInline>
                <supportsMultipleCategories>Yes</supportsMultipleCategories>
                <supportsHierarchicalCategories>Yes</supportsHierarchicalCategories>
                <supportsNewCategories>Yes</supportsNewCategories>
                <supportsNewCategoriesInline>Yes</supportsNewCategoriesInline>
                <supportsCommentPolicy>Yes</supportsCommentPolicy>
                <supportsPingPolicy>Yes</supportsPingPolicy>
                <supportsAuthor>Yes</supportsAuthor>
                <supportsSlug>Yes</supportsSlug>
                <supportsPassword>Yes</supportsPassword>
                <supportsExcerpt>Yes</supportsExcerpt>
                <supportsTrackbacks>Yes</supportsTrackbacks>
                <supportsPages>Yes</supportsPages>
                <supportsPageParent>Yes</supportsPageParent>
                <supportsPageOrder>Yes</supportsPageOrder>

                <requiresXHTML>True</requiresXHTML>
                <supportsAutoUpdate>No</supportsAutoUpdate>

        </options>
        <weblog>
                <homepageLinkText>View your blog</homepageLinkText>
                <adminLinkText>Administer your blog</adminLinkText>
                <adminUrl><![CDATA[
                        {blog-homepage-url}wp-admin
                ]]></adminUrl>
                <postEditingUrl><![CDATA[
                        {blog-homepage-url}wp-admin/edit.php
                ]]></postEditingUrl>
        </weblog>
</manifest>

Las dos líneas resaltadas tienen la siguiente función:

  • requiresXHTML: indica a Windows Live Writer que el contenido debe validar XHTML. Al habilitar esta característica, todas las tildes y algunos caracteres típicos de nuestro idioma serán convertidos a entidades HTML (Ej. á => &#xE1; ), por otro lado, esta opción no asegura que el código generado será completamente válido.
  • supportsAutoUpdate: al habilitar esta característica, Windows Live Writer verificará continuamente si el archivo wlwmanifest.xml cambió. Si desean ahorrar un poco de ancho de banda, es mejor deshabilitado.

Descargar Windows Live Writer Manifest.

Categories
.NET Miniposts PostgreSQL WordPress

Enlaces varios