wordpress3.1

Custom Content Types y Custom Taxonomies en WordPress

Hace unos días me escribió un amigo para preguntar cuánto cobrar por implementar WordPress con Custom Post Types. Aunque no es algo que tenga valorizado como ítem extra, obviamente los Custom Post Types y las Custom Taxonomies le dan un valor agregado al resultado final. En resumen, la producción y la administración se tornan más simples.

Como existen numerosos tutoriales y plugins sobre el tema pasaré de repetir lo que ya otros se han tomado el esfuerzo de explicar, prefiero concentrarme en algunos tips que, aunque obvios, pueden ser de mayor utilidad.

Todo pasa por la Arquitectura de Contenidos

Antes de decidir su usar  Custom Post Types y Custom Taxonomies es necesario saber si realmente es meritorio hacerlo y para ello nada mejor un buen trabajo de AI previo. Es necesario visualizar con claridad la naturaleza y cantidad de los objetos (unidades o contenidos) que manipularemos y que convivirán en un sitio, vale decir: páginas de contenidos fijos, noticias, fichas de productos, posts de uno o más blogs, catálogos, etc.  Para mí, lo primordial es simplificar al máximo en función de las necesidades del cliente, entendiendo que éste es usuario de un sistema que, en principio, debe ser sencillo de administrar.

Post type básicos:  Posts y Pages

Es una obviedad, pero objetos diferentes en cuanto a la forma de su contenido son técnicamente post_type distintos. Por ejemplo, noticias y catálogo o fichas de portafolio y anotaciones de un blog.

Continue reading

De IDA y sin retorno

“Y este fue el año” es la frase con la que quería empezar este post. Es que finalmente esta semana cumplí un sueño que he perseguido con tesón por largo tiempo; ese sueño se llama IDA.

IDA es la “idea” que mis socios y amigos, Adolfo Morales y Maximiliano Martin, comenzaron a forjar hace un año y a la que yo me uní a comienzos de Mayo, pero que formal y legalmente constituimos este miércoles 8 de Septiembre a las 16 hrs estampando nuestras firmas en una notaría en Príncipe de Gales 5786. (eso para el registro).

Sólo me resta decir gracias a mi hijo Felipe, por ser la fuerza; a la @negracuriche por ser mi pareja y por su estímulo y desafío diario; a mis socios por la confianza; y a mi familia por estar ahí, siempre.

“Así que este fue el año”, es la frase con la que quería cerrar este post. Es el comienzo del camino de IDA… no fue fácil llegar hasta aquí y no será fácil seguir, pero estamos felices caminando con nuevos sueños por cumplir.

Captura de pantalla 2010-03-29 a las 22.33.30

Montar particiones NFS (debian/ubuntu) en OSX Snow Leopard

Hace años que trabajo y administro servidores linux para pequeñas redes de oficina. El principal uso de estos servidores es centralizar los archivos compartidos y la base de datos, a la vez que contar con un entorno web de prueba para los sitios en desarrollo.

En cuanto a los archivos compartidos la política era simple: Mac y Windows usan Samba y Linux funciona mejor con NFS, que permite montar un sistema de archivos remoto como si fuera local y que, al estar configurado por ip/red, no pide ni usuario ni contraseña. Es más, cada vez que enciendes el PC el sistema está montado sin que tener que hacer nada especial.

Pero tenía una deuda con Mac, que por ser un sistema heredero de Unix, también permite este tipo de particiones de forma nativa. El problema era cómo.

Y la verdad es que es bastante simple, aunque tiene un truco y es que cuando configuras el archivo /etc/exports debes agregar la opción insecure (entre sistema Linux esto no es necesario).

$ sudo nano /etc/exports
# agregar algo similar a esto, en el ejemplo se acepta conexiones de toda la red 192.168.0
/home/serumax 192.168.0.1/24 (rw,sync,no_subtree_check,insecure)

Luego reincias el servicio NFS con

sudo /etc/init.d/nfs-kernel-server restart

Y lo que queda es agregar la partición en Mac usando la Utilidades de disco como se muestra a continuación:

Archivo -> Montajes NFS

Agregar un nuevo montaje con +

Y debería quedar algo como esto

¿Cómo configurar DNS con Bind9? segunda parte

La verdad es que no escribiré un extenso manual sobre las zonas inversas, básicamente porque en Internet hay muchos ejemplos. Además, la resolución de nombres inversa no es algo completamente necesario para tener un DNS sencillo funcionando de manera local, como podría ser para el uso de una oficina o pequeña red doméstica donde generalmente tenemos un sólo servidor web que responde a varios dominios ficticios.

Pero si lo que quieres obtener es el nombre de una máquina localizada en la IP 200.72.85.X, necesitarás configurar la zona de resolución de nombres que puede ser llamada, por ejemplo, 85.72.200.in-addr.arpa. Es decir, la numeración IP al revés y sin el último octeto.

Lo primero será editar /etc/bind/named.conf.local y añadir:

zone “85.72.200.in-addr.arpa” {
type master;
file “db-reverse-85.72.200″;
};

Luego escribiremos la información para el dns inverso en un archivo específico llamado db-reverse-85.72.200

nano /etc/bind/db-reverse-85.72.200

y copia las siguientes líneas:

;
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA dominio.cl. dominio.cl. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS dominio.cl.
55 IN PTR dominio.cl.
56 IN PTR sub1.dominio.cl.
57 IN PTR sub2.dominio.cl.

De forma que el último octeto de la IP (55, 56 o 57) escrito a la inversa y omitiendo el 85.72.200 que ya se especificó en “named.conf.local” corresponden a los dominios dominio.cl, sub1.dominio.cl y sub2.dominio.cl respectivamente.

Podemos comprobar su funcionamiento reiniciando el demonio BIND9 y realizando una consulta:

$ /etc/init.d/bind9 restart
$ host 200.72.85.55
85.72.200.55.in-addr.arpa domain name pointer dominio.cl

Finalmente, una de las grande confusiones respecto de el funcionamiento de las zonas inversas tiene que ver con la cantidad de octetos que se especifican al definir la zona inversa en el named.conf.local,  pues sería válido definir zone “72.200.in-addr.arpa” o zone “200.in-addr.arpa” y en dichos casos en el archivo db-reverse-85.72.200 (da igual el nombre) variarían las últimas líneas:

En el caso 72.200.in-addr.arpa

55.85 IN PTR dominio.cl.
56 .85 IN PTR sub1.dominio.cl.
57.85 IN PTR sub2.dominio.cl.

En el caso 200.in-addr.arpa

55.85.72 IN PTR dominio.cl.
56 .85 .72 IN PTR sub1.dominio.cl.
57.85.72 IN PTR sub2.dominio.cl.

Todo dependerá del tamaño del la red.

A Miguel Angel Moreno, el Klautonés

Poeta del reino de Klautonia
ha tiempo que en vuestras
comarcas anduve errando.
Una sensación de terciopelo
sobre madera barnizada
recorría entonces mi angostura,
pero aún recuerdo que de huesos
insepultos deseabas florecieran
las banderas de la historia.

Sangrabas palabras como un cristo
de biblioteca incinerada en medio
de esa noche que en los cielos
de la patria extensa persistió
cuales siglos de agonía.

Al sicario así esperabas darle muerte,
estocada de luz de madrugada.

Pero mi alma era una alondra
recién descascarada y no supe
acompañarte sino emigrar
con el viento de las soledades
hacia atardeceres de besos diluidos.

II

Al salir de tu reino,
patria inmensa del hombre
no conquistado por la bestia,
fui buscando en vano tierra dulce
donde echar las osamentas a descanso;
anduve largos días, vino la nieve
y en lejanas celosías tiritó
mi existencia clandestina;
pero anduve, inmutable,
noches, estío, meses,
y no sé cómo ni cuándo
otros hombres, otras huellas
fueron apareciendo en el camino.

III

Y eran de Infernario las tierras al pie,
al ojo, a la huella atrás abandonada.
Aquí los peregrinos de todos los caminos
sumamos voces indistinguibles,
arriamos banderas que juramos defender a muerte,
cargamos desperdicios como coleccionistas depresivos,
restamos desapariciones rancias en la memoria,
adherimos detritos de amores viles,
desechamos epístolas para no contagiarnos de melancolía,
y nos fuimos transformando en demonios de baja alcurnia,
en sombras del lo que alguna vez quisimos…

Y es tan incierta la vida:
tan avasallante el dígito:
tan invencible el hierro:
tan eterno el plástico:
que un silencio de mar incógnito
se se hizo baldío en nuestras lenguas,
y un código de barra infame
apoderóse de nuestro puño y letra.

IV

Pero hoy, a cuatro días del mes de octubre
de este tercer año de igual milenio,
os relato en torpe lo que ha sido
de mi paso por las tierras Infernario.

A vos, Miguel, os dedico a plenitud
este cuaderno escrito en el cuero de mi alma
durante los días más oscuros que mis ojos
han visto en lo que me va de vida.

Aquí os muestro lo que en estas latitudes
hay de par y de dispar con vuestro reino.
Aquí os cuento lo que otros me contaron
con sus vidas mínimas y su lenguaje mascullado.
Aquí os dejo mi testimonio de vida,
mi confesión de Caín arrepentido
en las postrimerías del universo:
perdonad a este hermano canalla,
perdonad mi silencio.

Ya sabéis en qué un fuego consumido perecía.

PD. Gracias por este regalo!

Y ahora que se ha muerto Benedetti…

Cuando en el otro mundo se encuentre con Pablo de Rokha, escuchará los siguientes versos:

¿Por qué cantáis, oh! brutos, a las carretas torpes,
a los amores fáciles, a las casitas viejas,
a las nenas de barrio, a los frailes, al hombre
pacato, mentecato, jorobado y deforme
y no cantáis la vida multiforme y compleja?

Y donde hay un motor encendido y gigante;
y donde hay una fábrica estupenda y gloriosa,
y donde hay un palacio de cemento y de sangre
o una gran muchedumbre de huelguistas con hambre,
vosotros veis a una princesa que llora.

Fragmento de Sátira

Y Lihn rematará diciendo:

“Nadie escribe desde el más allá
Las memorias de ultratumba son apócrifas…”

En tu caso eso es, a lo menos, una bendición…

Richard Stallman hablando de código abierto en español

De esto se trata el opensource y el movimiento del software libre dicho en español por el mismísimo Richard Stallman, aunque parezca que es la voz de Sam, el asistente chanta de MS Windows ;)

Después de escucharlo un rato su discurso me parece demasiado anti Microsoft, cuando creo que debiera centrarse en las ventajas de desarrollo y económicas del software libre.

Pero en la medida que explica sus 4 libertades su discurso se hace coherente:

  • La libertad cero es la libertad de ejecutar el programa como se desee, con cualquier propósito.
  • La libertad uno es la libertad para estudiar el código fuente y modificarlo para que haga lo que tu deseas o necesitas que haga.
  • La libertad dos es la libertad para ayudar a otras personas, es la libertad de hacer copias y distribuirlas a otros en cualquier momento.
  • La libertad tres es la libertad para ayudar a la comunidad: la libertad de publicar o distribuir las versiones modificadas cuando tu quieras.

Visto en Tecnologías libres

Terminator, la consola perfecta

Terminator se ha transformado en una de las aplicaciones que más uso para hablar con Neo, al menos eso es lo que cree mvallejos cuando me ve con las pantallitas negras de este fantástico terminal para GNOME. Su mayor virtud es que cuenta con  la característica  de dividir la  ventana del terminal en varias partes.

Personalmente nunca me acostumbré a trabajar con pestañas,  por lo que terminaba con muchas consolas abiertas (por suerte, tanto en la casa como en la oficina, uso dos monitores). Por eso, para hacer varias cosas a la vez es sumamente útil, especialmente porque la ventana del emulador se puede dividir vertical u horizontalmente y para cambiar de terminal puedes usar ctrl + tab. Eso sí, la versión en español de Ubuntu 8.04 -que es la que  tengo en la oficina- confunde horizontal con vertical, pero en la 8.10 tiene ese bug corregido.

Terminator es un script simple creado en python que pone múltiples widgets vte en ventanas, el widget es el mismo que usa gnome-terminal, así, si necesitas “customizar” colores, tipografìas o ciertos comportamientos, debes hacerlo directamente en gnome-terminal.

Lo mejor es que  viene en el repositorio Universe de Ubuntu desde la versión 8.04, por lo que solo necesitas hacer sudo apt-get install terminator o buscarlo en synaptic.