5 tips para diseñar tus links

Los links son la base del proceso de navegación en internet. Dependiendo de los links y el contenido del sitio a donde llevan, el visitante decidirá si quiere regresar o no.

Las últimas tendencias han desarrollado la busqueda de un estilo de escritura para satisfacer las necesidades y los gustos de los diferentes usuarios y los constantes cambios de los motores de búsqueda (Search Engines)

Usualmente los autores usan los links para reforzar un concepto, un grupo de links puede servir como el enfoque de un website. Pero, un grupo de links no tiene el mismo efecto sobre el lector, y no es tan legible como el texto linear.

Teniendo en cuenta el problema de los links, debemos usar texto relevante en nuestros links (anchor text), mantener una consistencia visual que identifique a los links entre el texto y diferenciar los links que han sido visitados y los que no.

Los links deben ser usados como refuerzo del contenido, no como su sustituto.

  1. Colores diferentes para links visitados y no visitados
    Los Links que fueron clickeados deben diferenciarse de una manera u otra de los que no; La mejor manera de hacerlo es utilizando alto contraste de color. Los links deben resaltarse lo mas posible en el texto del website en cualquier caso, los colores brillantes son preferibles.Por otra parte los links que ya fueron visitados deben tener un color un poco mas pálido o gastado, aunque no usando la misma escala cromática que los links no vistados, porque esto podría confundir a los visitantes.
  2. El texto es lo suficientemente grande y los links no están muy cerca unos de otros
    Los usuarios deben llegar a su destino voluntariamente, no porque hayan hecho click a link por error.
  3. El contenido importante es accesible desde más de un link
    Si el contenido es accesible desde diferentes sitios en el website, es mucho más probable que los visitantes encuentren lo que andan buscando. Cada usuario busca información de formas distintas, dependiendo de su interpretación de un problema y del layout del website. Algunos encuentran los links importantes facilmente cuando tienen un texto especifico, otros lo encuentran mas facilmente cuando tienen un texto alternativo.
  4. El texto de los links tiene una buena cantidad de palabras
    El texto de los links deben ser lo suficientemente largo para que el usuario entienda de que se trata y lo suficientemente corto como para que no llene una línea completa. Algunos estudios han demostrado que los usuario entienden mejor la prosa y que los links con 8 a 9 palabras tienen mejores resultados. Una buena explicación de Long Tails.
  5. El texto del link es descriptivo
    La confusión en los usuarios debe ser combatida a toda costa. En cuanto a esto, debemos poder mirar todos los links en nuestro website y poder sacar una conclusión contundente de qué vamos a encontrar si los seguimos. Un ejemplo contraproducente de esto son los links que dicen “click aquí” por que no ofrecen una pista sobre lo que uno va a encontrar del otro lado.

Como comparto desde Twitter con mis amigos de Facebook

Muchos de mis amigos en Facebook que no tienen  cuenta de Twitter seguro piensan que me estoy volviendo loco.

Aunque considero que con el tiempo Facebook y Twitter serán menos comparables, por ahora, para mi, son complementarios.

A partir de que sincronicé Twitter con Facebook estoy recibiendo mas conversación con mis amigos de Facebook, aunque al principio muchos no entendían y algunos siguen sin entender, encuentran ocasión para comentar en mis status y generamos conversaciones a partir de mis updates de Twitter.

A proposito soy @himself en Twitter.

Python 2.6 & Mysql

Cualquiera que esté programando en Python y use Mysql ya debe haberse encontrado con MysqlDB. También debe haberse dado cuenta que no hay una versión para Python 2.6 en la página de descarga. Esto es bastante desconcertante porque Python se movio a la version 2.6 dias antes de finalizar el 2008 y solo despues anunciaron Python 3.0. Porque MysqlDB no está al día?

Así que estoy estancado con Python 2.5? No necesariamente – Si usas Linux, puedes compilar la fuente de MysqlDB en tu instalacion de Python, o si estas en Windows puedes simplemente descargar este obscuro release de MysqlDB

Artículo original en inglés

CodeIgniter, Google Analytics y código reusable

Gran parte de la versatilidad de un buen framework radica en la capacidad de permitirnos reusar código, así vamos creando nuestro propio framework con una biblioteca de funciones y clases que podemos volver a usar y volver a usar y volver a usar …

Para poder escribir código reusable, debemos abstraer los procesos lo más posible, de modo que no tengamos que cambiar los archivos originales para encontrar la solución a nuevos problemas.

Para explicar mejor este concepto, un buen ejemplo sería crear un Helper para añadir el tracking code de Google Analytics.

El problema con Google Analytics es que el te da un código que ponemos antes de </body> en cada una de las paginas de nuestro website. así que sería una buena idea tener una función que nos permita escribir google_analytics(). Esto ayudaría a la portabilidad. Si el código de analytics cambia, solo tendríamos que cambiar el archivo de configuración o el Helper en vez de cambiar manualmente todos los templates.

El primer paso es definir lo que queremos:

  • Un Helper que  nos permita llamarlo para que nos imprima el código de Google Analytics con su tracking code.
  • Que verifique en un archivo de configuración, si queremos que se imprima el código y el tracking code.
  • Que opcionalmente se le pueda pasar el tracking code a la función y tome el tracking code de este argumento y no del archivo de configuración.

Comenzamos por crear un archivo de configuracion y añadir los items ( como explica la guía de codeigniter1 ) que vamos a usar en la funcion de Google Analytics

Para crear el Helper hay que tener en cuenta dos reglas:

  1. Los nombres de los archivos de helpers deben tener el sufijo _helper para ser correctamente cargados.
  2. Para utilizar el superobjecto de CodeIgniter ($this) debemos asignarlo a una variable con la función get_instance()

En el archivo analytics_helper.php

El resto es simplemente verificar si hay un tracking code como argumento, sino existe se busca el tracking code del archivo de configuración y se imprime el código de Analytics interpolando el valor del tracking code.

Pueden descargar una copia de los archivos utilizados en este ejemplo aquí. Para aprender o para usarlo en sus proximos proyectos con CodeIgniter.


Modo de uso

Copie analytics.php a la carpeta application/config y sustitúya $config['tracking_code'] por el tracking code correcto.
Copie analytics_helper.php a la carpeta application/helpers
Despues de haber llamado cada uno de estos archivos en config/autoload.php puede llamar la funcion google_analytics(); en el template y el se encarga del resto.

  1. http://codeigniter.com/user_guide/libraries/config.html []

Lovely Charts

Lovely Charts es una herramienta para dibujar diagramas de flujo, sitemaps, diagramas organizacionales, wireframes y más. Lo que me gustas es que me puedo enfocar en pensar en lo que quiero hacer y no en dibujar cuadritos y lineas.

Primeros pasos en pair programming

Desde hace tiempo vengo oyendo hablar sobre el pair programming, sus ventajas y sus implicaciones, pero simplemente no me parecía que esto fuera muy productivo ni que fuera a ayudar tanto de todos modos. A simple vista pair programming se trata de que dos programadores se sienten frente a un monitor continuamente colaborando con un diseño, un algoritmo o cualquier código o prueba.

Cual es el punto? yo he hecho eso muchas veces…

Yo nunca había hecho pair programming teniendo en cuenta que pair programming es un estilo y que es una metodología, y que sobre todo teniendo en cuenta que dos programadores al mismo tiempo no es una redundancia, sino una ruta directa a mayor eficiencia y mejor calidad.

Algunas partes de la metodología

  1. Comiencen con una tarea bien definida. Cuando los dos se sienten deben tener una tarea correctamente detallada y deben tener la seguridad de que van a poder terminarla en una hora o dos
  2. Compartan todo. Todo se trata de que los dos programadores funcionen como una sola mente, mientras uno está en el teclado, el otro está revisando todo y dando retroalimentación. Es importante que se intercambien el turno de escribir y revisar para que uno de los dos no se sienta poco importante o fuera del juego.
  3. Hablen todo lo que sea necesario.  Una buena señal es que los dos implicados esten hablando todo el tiempo. Diciendo lo que van a hacer, pidiendo una idea de una inplementación, preguntando la mejor manera de hacer algo, dando soluciones alternativas, etc. 
    Algunas de las cosas mas comunes que se dicen cuando se esta haciendo pair programming son: Que tu crees de esto? que sigue? confía en mi (cuando una linea de código habla mas que 100 palabras)
  4.  No se cojan las cosas muy a pecho. Cuando una persona tiene el ego muy alto tiende a no aceptar criticas de los demas. También el ego excesivo puede atribuirle una actitud defensiva ante las criticas al programador, o puede pensar que los que se le dice es personal y en su contra.
  5. Suelten el escepticismo. Desarrollen una expectativa de exito. Si uno no espera beneficiarse o disfrutar el proceso es muy difícil que las cosas funcionen correctamente.
  6. Tomense un momento para celebrar. A medida que se vayan completando las tareas hay que felicitarse, por ejemplo, se resolvio ese problema con la base de datos, chocala!

Conoces algunas otras sugerencias para ayudarnos a hacer mejor pair programming?

Que es un contrato para un freelancer?

Cualquier cosa que pueda ir mal … irá mal. (Ley de Murphy)

Hay tanto de verdad en esas palabras, aunque parezcan una broma, reflejan una verdad que no puedo tratar de ocultar tras la inseguridad de decirle a un potencial cliente que tiene que firmarme un contrato donde se especifique lo que voy a hacer y como me vá a pagar. Hacer que un cliente me firme un contrato no lo va a hacer sentir mal, mucho menos se va a ofender, muy por el contrario, un contrato le da la seguridad de que estoy dispuesto a cumplir con mi parte. Al mismo tiempo que me asegura a mi que el vá a cumplir la suya.

untitled-1

Aunque un contrato es un documento legal, no tiene que ser escrito con la tonalidad monótona que tienen este tipo de documentos. Un documento puede ser escrito en un tono jovial, pero debe mantener la claridad correcta de lo que ambas partes esperan y estan dispuestas a cumplir.

Pero, tu eres un buen tipo, tu trabajas para clientes perfectos … nada malo te va a pasar.

Piensalo bien, pues aunque tu seas una publicitaria de una sola persona, o trabajes para una agencia, a veces la cosa se pone dura y la gente se pone necia. En ese momento un contrato asesino te puede devolver esa sonrisa y salvarte de una situación muy desagradable.

Un contrato es importante en el proceso de mantener las amistades y las sonrisas por que define, entre otras cosas:

  • Las metas del proyecto
  • Lo que tu vas a hacer
  • Lo que te tienen que entregar
  • En que tiempo se va a realizar
  • Cuanto te van a pagar
  • Como te van a pagar
  • Quienes estan involucrados

Existen contratos que no estan diseñados para ser entendidos en una primera lectura (ni en una segunda), o sin ayuda de un abogado. Muchas veces yo he firmado contratos que realmente no he entendido completamente, sin saber realmente en que me estoy metiendo, eso me convierte en un loco. Pero comenzar un proyecto sin firmar un contrato me convierte en un maldito estupido.

OJO

Hay que poner especial atención en lo que se firma en un contrato, porque así como un contrato nos puede librar de un momento difícil, un contrato firmado a la ligera y sin entender todos los puntos especificados puede causarnos un muy mal momento, o peor aún, mas de un momento.

20 scripts de greasemonkey para mejorar la experiencia en Twitter

Buscando un buen cliente para Twitter en Ubuntu me encontré con este enlace con 20 scripts que resuelven varias de los exigencias en un buen cliente y mejoran considerablemente la experiencia de Twitter.

Miniposts en WordPress

Los minipost son entradas cortas, generalmente con enlaces interesantes que uno suele ver intercalado entre los posts regulares en algunos blogs.

Algunos ejemplos de blogs que utilizan miniposts incluyen blogpocket, Duarte 101 y ALT1040

En resumen hay que realizar 3 pasos:

  • Crear una categoría para los miniposts (miniposts)
  • Modificar el index.php del template
  • Publicar los miniposts como un posts cualquiera, solo hay que asignarle la categoría (miniposts)

Haciendolo

Primero hay que crear una categoría para guardar los miniposts, yo uso miniposts, pero se puede elegir cualquier nombre, lo importante es anotar el numero de id de la categoría (ID).

Ahora hay que modificar la plantilla para que cuando WP vaya a mostrar un post que pertenezca a la categoría “miniposts” lo muestre de forma diferente a como mostraría cualquier post de otra categoría.

Hay que encontrar la linea que dice:
<?php if (have_posts()) :  while (have_posts()) : the_post(); ?>

Justo debajo de esta linea introducir el siguiente codigo:

<?php if (in_category(35) && !is_single()): ?>
<ul class="miniposts">
  <li id="p<?php the_ID(); ?>">
    <?php echo wptexturize($post->post_content); ?>
    <!--
    <?php trackback_rdf(); ?>
    -->
  </li>
</ul>
<?php else: ?>

Y debajo continuamos el Loop con los elementos que no pertenecen a nuestra categoría de miniposts.

Optimizando

Según el método que llevamos, si publicamos dos miniposts seguidos se van a crear dos listas. así que para perfeccionar eso vamos a introducir el código de una función llamada stupid_hack que busca mediante una expresión regular  que busca los </ul> que estén seguidos de un <ul class=”miniposts”> para así unir todas las listas continuas de miniposts en una sola que contenga tantos miniposts seguidos como los hayan

function stupid_hack($str) {
  return preg_replace(’|</ul>\s*</ul class=”linklog”>|’, ”, $str);
}
ob_start(’stupid_hack’);

Este codigo puede ser llamado desde cualquier lugar del documento.

Dandole estilo

Se pueden personalizar los miniposts aplicandoles a las listas una clase como .miniposts y cambiar el tamaño, el color o la tipografia.

Mario Kart en la vida real

Este video es de un tipo vestido de Mario, manejando un carrito en una ciudad de verdad, tirandole cascaras de guineos a los otros carros. simplemente demente!