SeeD

Blog de amorales

Arquitectura de Drupal 7

John Van Dik en su blog ha publicado la información que usó en el DrupalCamp Iowa 2011 para su presentación "Introduction to Drupal 7 Architecture", esta presentación él la cataloga como un breve resumen de alto nivel de Drupal, considero que es una información bastante valiosa para entender cual es el flujo de ejecución de Drupal y  los entornos mas comunes .

 

Contenido 2: 

De la presentación destaco y recomiendo ver lo siguiente:

 

  • La forma como muestra la secuencia desde un servidor estándar con LAMP, pasando por las mejoras con Varnish, el balanceo de carga y el como se escala mysql.
  • La secuencia de ejecución de una petición hecha a un sitio Drupal que nos permite vislumbrar un poco la arquitectura en la versión 7 pasando por el sistema de menus, la ejecución de los hooks la alteración de la estructura de datos, el renderizado de la información en formato HTML etc.
  • El diagrama de bloques que plasma un modelo mental para entender el funcionamiento de Drupal.
  • La explicación de que es una entidad 

Drupal: Modelo mental en bloques

 

Pueden descargar la versión original y completa en inglés desde el blog de John.

 

Si tienen alguna inquietud, con gusto la resolveremos en Twitter @seedcolombia o a través de este formulario.

 

El SEO es importante en un sitio web, pero cuidado con el Black-hat SEO

Una vez un sitio es publicado en Internet el siguiente paso a seguir para hacerlo mas visible, atractivo y por ende con mayor tráfico en la red es establecer las practicas de SEO que se van a implementar, algunos servicios disponibles en Internet se han dedicado a prometer posicionar un sitio web en los primeros resultados en poco tiempo, sin embargo es sabido por quienes trabajan el SEO que un buen posicionamiento es el producto de definir un buen plan a ejecutar, mucha paciencia y constancia, cuando se opta por el camino corto se puede estar cayendo fácilmente en black-hat SEO y esto es d

Contenido 2: 

Se deonima Black-hat SEO a aquellas prácticas que buscan engañar a los buscadores o usuarios mediante información, fuentes o descripción falsa, el Black-hat SEO no solo se puede producir intencionalmente sino por la falta de información y conocimiento de quien lo produce por eso es importante saber  "Que no hay que hacer para un buen SEO".

 

En socialmediatoday.com Eva Grzybek ha publicado una serie de prácticas que son consideradas Back-hat SEO y que esperamos les sean muy útiles para la próxima vez que desee contratar o elaborar su propio plan de SEO.

 

1. Keyword stuffing: Esta práctica consiste en repetir incansablemente las palabras clave a lo largo del texto de una página. La saturación de estos términos puede llevar a los buscadores a penalizar la URL. Aunque lo más importante es que esto resulta molesto para los usuarios.

 

2. El contenido oculto: Para que el contenido de una página no se empobrezca al repetir las palabras o frases clave en el texto, hay quien opta por hacerlas invisibles para los usuarios.

 

En algunas ocasiones se introduce los términos en el mismo color del fondo de la página, con lo que pasan desapercibidos. Otra técnica consiste en realizar keyword stuffing en URLs accesibles a los buscadores pero no para los usuarios. Ambas prácticas están penalizadas por los motores de búsqueda.

 

3. Compra de enlaces: Ésta es una práctica muy extendida. Hay compañías que se dedican a ofrecer paquetes de enlaces a tu página web por una determinada cantidad de dinero. Sin embargo, la relevancia de estos links depende entre otras cosas de lo relacionados que estén los sitios que los acogen con la temática del enlace. Los buscadores cada vez tienen más herramientas en su mano para saber diferenciar los links de calidad de los que no lo son.

 

4. Spam en los metadatos: La información que proveen los metadatos es de gran importancia para los buscadores. Algunas web saturan este campo (que incluye elementos como el título o la descripción) con palabras clave en lugar de ofrecer una explicación clara y sencilla del contenido del site. Esto no afecta a la experiencia del usuario pero sí está mal considerado por los buscadores. 

 

5. Contenido duplicado: A los buscadores les gusta indexar contenido original. Publicar las mismas páginas o artículos puede redundar en un beneficio para la web. Pero esto sólo será al principio porque los motores de búsqueda terminan por penalizar las repeticiones de texto. 

 

Si tiene alguna inquietud, con gusto la resolveremos a través de este formulario o nuestra cuenta de Twitter @seedcolombia 


La historia de Internet en un video de 8 minutos.

Internet lleva unas cuantas décadas con nostros, realmente no tantas y ha logrado cambiar nuestra forma de vida al punto que los negocios, la política, la sociedad y hasta los gustos giran al rededor de Internet, es justo que al menos sepamos como surgió, como evolucionó, quienes fueron los precursores, que dimensiones tiene actualmente y quizás un poco de hacia a donde va.

 

Contenido 2: 

 

Los invito a dedicar 8 minutos de su tiempo a ver este video producido por Simon Hergueta y que condensa de forma rápida la historia de Internet.

 

 

Si tiene algun aporte o inquietud, contáctenos a través de este formulario o de nuestra cuenta de Twitter @seedcolombia

Conferencia Drupal 7: Su presente y su futuro - Septiembre 17 de 2011

Este Sábado 17 de Septiembre estaremos realizando la conferencia "Conferencia Drupal 7: Su presente y su futuro" a nombre de Drupal Colombia con motivo del Software Freedom Day Bogotá en la fundación CIDCA - Sede Chapinero Carrera 13 #60-44, la asistencia es totalmente gratuita y estan invitados a asistir.

 

Contenido 2: 

La conferencia tendrá una duración de 50 minutos e iniciará a las 12 del medio día en el Auditorio Stallman (Biblioteca Cidca - Piso 5),  podrán enterarse de las nuevas características de Drupal 7 y porque es importante elegir esta versión para los nuevos proyectos que quieran abordar, para quienes aún no se animan por Drupal les mostraremos casos de estudio a nivel mundial y el ecosistema que gira al rededor de este gran CMS tanto desde el punto de vista tecnológico como de negocio.

 

Finalmente terminaremos la conferencia hablando del futuro de Drupal sobre los planes para Drupal 8 en temas como la integración con la Web semántica.

 

Mayor información: http://wiki.softwarefreedomday.org/2011/Colombia/Bogot%C3%A1/SFDBogota

 

Si tiene alguna inquietud, contáctenos a través de este formulario o nuestra cuenta de Twitter @seedcolombia

Lo que debes saber para ser un buen ciudadano de Internet

Google viene realizando una campaña bastante interesante para enseñar los conceptos básicos de uso y seguridad en Internet, una campaña que vale la pena apoyar porque ayuda a reducir la brecha digital y mejorar la inclusión tecnológica a nivel mundial, por ello les quiero compartir el sitio web http://www.20thingsilearned.com/es-419, está totalmente en español y acompañado de divertidas gráficas, muy al estilo de Google lo que lo hace muy sencillo de entender.

 

Contenido 2: 

Al inicio encontrarás una introducción bastante familiar para quienes nunca se atrevieron a hacer sus preguntas porque creían que eran demasiado absurdas:

 

"¿Que es una cookie?, ¿Como me protejo dentro de la web? y más importante ¿que pasa si un camión le paso a mi laptop por encima?"

 

Vas a poder entender sobre:

  • ¿Que es internet?
  • Aplicaciones Web
  • Extensiones del navegador
  • Software malicioso Phishing y riesgos de seguridad

 

y mucho más

 

Espero que lo disfruten.

 

Si tienen alguna inquietud o aporte que hacernos, contáctenos a través de este formulario o de nuestra cuenta de Twitter @seedcolombia

Drupal 6: Como establecer un campo de formulario creado con CCK como desactivado.

 

Los campos de formulario son muy sencillos de manipular mediante un form_alter en un módulo, sin embargo cuando estamos tratando con campos creados con CCK (Content Construction Kit) la historia es un poco distinta porque estos campos son creados al final de la construcción del formulario, de tal forma que cualquier cambio que necesitemos realizar debemos hacerlo entre la contrucción del formulario y el renderizado.

 

Contenido 2: 

 

El el hook_form_alter necesitamos definir la función que se va a ejecutar después de construido el formulario usando el elemento especial #after_build (http://api.drupal.org/api/drupal/developer--topics--forms_api_reference....)

 

function mymodule_form_alter(&$form, &$form_state, $form_id){

  ...

  $form['#after_build'][] = 'mymodule_after_build';

  ...

}

 

El siguiente paso es crear la función que especificamos y hacer el cambio al cambio mediante la especificación del atributo 'disabled'

 

function mymodule_after_build($form, &$form_state){

  ...

  $form['field_myfield'][0]['value']['#attributes']['disabled'] = TRUE;

  ...

 

  return $form;

}

 


Si tiene alguna inquietud o aporte que hacernos, contáctenos a través de este formulario o de nuestra cuenta de Twitter @seedcolombia

Como aplicar estilos a un campo html tipo "file"

Aplicar estilos a un campo de formulario de tipo "file" es uno de los mayores dolores de cabeza de los desarrolladores que trabajan en la implementación de la capa de presentación, una forma sencilla de lograrlo es usar Jquery y la librería FileStyle, esta librería nos permite una imagen personalizada para el botón "Examinar" asi como aplicar estilos al campo como si fuese de tipo texto.

 

La implementación es muy sencilla.

Contenido 2: 


Paso 1: Incluir las librerías.

 

<script src="/jquery.js" type="text/javascript"></script> 

<script src="/jquery.filestyle.js" type="text/javascript"></script>

 

La librería de Jquery esta disponible para descarga desdehttp://jquery.com/  y la de FileStyle desde http://www.appelsiini.net/projects/filestyle

 

Paso 2: Tener una imagen para el botón "Examinar" como la siguiente.

 

Choose File

 

Paso 3: Implementar la función.

 

 $("input[type=file]").filestyle({

     image: "choose-file.gif",

     imageheight : 22,

     imagewidth : 82,

     width : 250

 });

 

 

Ya con esto deberíamos aplicar estilos con mayor libertad, fíjese como input[type=file] hace referencia a todos los campos tipo "file" sin embargo podríamos especificarlo a un campo en particular que por ejemplo tenga la calse file-upload de tal forma que usariamos input.file-upload, el archivo choose-file.gif debería estar en la misma carpeta donde se encuentra la página o sino debería definir la ruta completa de la ubicación del archivo.

 

Espero les sea de mucha utilidad.

 


Si tiene alguna inquietud o aporte, contáctenos a través de este formulario o de nuestra cuenta de Twitter @seedcolombia

Pasar la IP del cliente a Apache desde Varnish

Varnish es un gran servidor para la capa estática de nuestras instalaciones Drupal y lo usamos o recomendamos en la gran mayoría de instalaciones, hay algunos casos especiales en donde debemos realizar ajustes a la configuración de Varnish o Apache para que no se nos presenten inconvenientes con algunos módulos como el API de votación cuando requerimos hacer bloqueo por IP, dado que Apache envía la respuesta directamente a Varnish y no al navegador del usuario, la IP que registraremos será la IP local 127.0.0.1

 

Contenido 2: 

 

Para solucionar esto, podemos hacer uso del módulo RPAF para Apache que básicamente nos permite tomar la IP registrada por el proxy que está delante de nuestro Apache y la aplica a la dirección remota en Apache, pueden ampliar la información en: http://www.stderr.net/apache/rpaf/

 

Para realizar la instalación del módulo seguimos los siguientes pasos (Estos fueron realizados en la distribución Linux CentOS 5).

 

#yum install httpd-devel

# wget http://www.stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz

# tar zxvf mod_rpaf-0.6.tar.gz
# cd mod_rpaf-0.6
# sed -i 's/APXS2=\$(shell which \(apxs2\))/APXS2=\$(shell which apxs)/' Makefile
# make rpaf-2.0 && make install-2.0

 

Después de instalar el módulo a partir de la compilación de lo binarios, porcedemos a habilitarlo y establecer la configuración para Apache, de tal forma que creamos un archivo llamado rpaf.conf en el directorio de archivos de configuración de Apache.

 

# nano /etc/httpd/conf.d/mod_rpaf.conf

 

Este archivo debe contener las siguientes instrucciones:

 

LoadModule rpaf_module modules/mod_rpaf-2.0.so
RPAFenable On
RPAFsethostname On
RPAFproxy_ips 127.0.0.1
RPAFheader X-Forwarded-For

 

Finalmente reiniciamos Apache.

 

# service httpd restart

 

Para comprobar si nuestros cambios funcionan, podemos ejecutar el siguiente script en PHP

 

<?php

$clientip = $_SERVER['HTTP_CLIENT_IP'];
$remoteaddr = $_SERVER['REMOTE_ADDR'];
$xforwardedfor = $_SERVER['HTTP_X_FORWARDED_FOR'];

 

echo "<li>HTTP_CLIENT_IP:  $clientip</li> \n";
echo "<li>REMOTE_ADDR:  $remoteaddr</li> \n";
echo "<li>HTTP_X_FORWARDED_FOR:  $xforwardedfor</li> \n";

 

Este artículo está basado en el artículo publicado por Rubén Ortiz en: http://www.rubenortiz.es/2011/07/01/varnish-direccion-ip-cliente/

¿Que tanto tráfico puede soportar Drupal?: caso de estudio gazzeta.gr

Cuando presentamos a Drupal como la plataforma que recomendamos para la elaboración de algún proyecto Web, es inevitable que al cliente le preocupe que tan estable es y sobre todo si será capaz de soportar el tráfico proyectado para el proyecto, afortunadamente Drupal está soportado por una comunidad muy sólida en donde se cuenta con miembros muy experimentados en distintas áreas que han aportado su conocimiento para hacer de Drupal una de las plataformas más sólidas y de mayor preferencia para sitios alto tráfico, por eso quiero compartir este caso que tranquilizará a muchos respecto a cua

Google anuncia los resultados del "Summer of Code", ¡Drupal obtiene 20 proyectos!

Esta es una gran noticia para la comunidad Drupal, Google ha aceptado 20 proyectos de Drupal para la edición 2011 del Google Summer of Code, esto representa una inversión de $110.000 US por parte de Google para estos proyectos.

 

Los aceptados son los siguientes:

 

Distribuir contenido