Picando Código
Afiches minimalistas de la galaxia de Star Wars
Febrero 8th, 2010 - [Enlace local]
Justin Van Genderen creó una serie de afiches de distintos sistemas en la galaxia de Star Wars. Hay afiches de: Dagobah, Endor, Tatooine, Hoth y Bespine. Están muy buenos, particularmente en mi caso uso el nombre de alguno de estos sistemas para cada una de mis computadoras, para algo los usaré:
fernando@dagobah fernando@hoth fernando@tatooine
Pueden ver el resto de la galería en Flickr. Visiten el sitio del autor para ver más diseños de su creación.
Vía: Laughing Squid
» Leer más, comentarios, etc...
Variable not found
30 Leyes epónimas relacionadas con el desarrollo de software (y III)
Febrero 7th, 2010 - [Enlace local]
Este post es la tercera y última entrega de la serie 30 Leyes epónimas relacionadas con el desarrollo de software. Puedes encontrar la segunda parte aquí.
21. Las leyes de Bryce
Así las llama él, aunque algunas encajarían mejor en una recopilación de frases célebres. Ahí van algunas, aunque pueden encontrarse más de 150 aquí.Tim Bryce es un controvertido escritor y consultor de gestión de recursos de información (IRM), famoso entre otras cosas por sus aseveraciones sobre el ego, las manías y extrañezas de los desarrolladores, y sus consejos para manejarlos apropiadamente. Aparte de su habilidad para hacer amigos entre los programadores, es sin duda un gran experto en el mundo de las compañías de desarrollo de software, con más de 30 años a sus espaldas en este campo.
Tal y como el uso de la tecnología va aumentando, disminuyen las habilidades sociales
El 85% del trabajo de desarrollo de todos los sistemas consiste en introducir modificaciones y mejoras
A la vez que la capacidad del hardware incrementa, el software se vuelve más pesado
Olvidar al ser humano durante el diseño del sistema provocará que el ser humano se olvide del sistema en el momento de echarlo a andar
[...]
22. Primer principio de Spaf
Si eres responsable de seguridad pero no tienes autoridad para establecer reglas y castigar sus incumplimientos, tu cargo real en la organización es asumir la culpa cuando ocurra algo grave
Eugene Spafford, más conocido como "Spaff", es un reputado experto en seguridad informática y profesor de la Purdue Univertity. Según parece, fue uno de los primeros en escribir un libro sobre virus informáticos en 1989, utilizar el término autopsia software para referirse al análisis de aplicaciones para intentar localizar a sus autores, y un sinfín de aportaciones al mundo de la seguridad en sistemas informáticos.
Además, es tan prolífico creando frases y analogías a la hora de explicar conceptos de informáticos que Mahesh V. Tripunitara, uno de sus estudiantes, mantiene una página donde las recoge: "The Page of Spaf's Analogies".
23. Ley de Alzheimer de la programación
Si lees un código que escribiste hace más de dos semanas es como si lo vieras por primera vezEfectivamente, el psiquiatra y neurólogo alemán Aloysius Alzheimer no enunció esta ley a primeros del siglo pasado, pues estaba muy ocupado estudiando las enfermedades mentales de sus pacientes. Sin embargo, el síntoma de pérdida de memoria tan habitual en ellos propició la utilización de su nombre en esta Ley tan ligada a la escritura de código limpio, documentado y sencillo.
24. Ley de Amara
Tendemos a sobreestimar el efecto de la tecnología en el corto plazo y a subestimarla a largo plazoEsta ley, causa de la existencia de problemas debidos a excesos de optimismo o de la formulación de predicciones disparatadas, fue enunciada por Roy Amara, que fue presidente del Instituto para el Futuro, un grupo de investigación sin ánimo de lucro dedicado al análisis de tendencias que ayuden a la toma de decisiones basándose en predicciones sobre el futuro.

26. Principio de Liskov
Los subtipos deben ser sustituibles por sus clases basesO en otras palabras, que un subtipo no debe modificar el comportamiento esperado de la clase de la que hereda; de esta forma, si el subtipo puede sustituir a su clase base sin causar daños, la herencia será correcta. Citando a Enrique Place en PHPSenior,
"No basta con ser hay que comportarse como tal".
Barbara Liskov es profesora del Massachusetts Institute of Technology (MIT) y fue la primera mujer en conseguir el doctorado en informática de Estados Unidos.
25. Ley de Hick
El tiempo que se tarda en tomar una decisión aumenta a medida que se incrementa el número de alternativasPuede sonar a obvio, pero la cuestión es que William Edmund Hick, pionero en psicología experimental y ergonomía, fue capaz de idear, a mediados del siglo pasado, la fórmula que explica por qué tardamos tanto tiempo en responder a un cuadro de diálogo con botones para Aceptar, Cancelar, Reintentar, Ignorar y Omitir:
T = blog2(n + 1)Cosas de las matemáticas, seguro. :-D

27. Principio de Hanlon
Nunca le atribuya a la maldad lo que puede ser explicado por la estupidezA pesar de su nombre, no está claro quién definió con tanta claridad su confianza en la capacidad del ser humano. Bill Clarke, Goethe, William James, Napoleón Bonaparte, Richard Feynmann, Einstein, Robert A. Heinlein (cuyo apellido podría haber degenerado en "Hanlon"), o un desconocido Robert J. Hanlon del que no existen demasiadas referencias podrían ser los padres de esta Ley tan utilizada por los hackers para definir situaciones creadas como consecuencia del trabajo de incompetentes sin mala intención.

28. Ley de Joy
El número de empleados inteligentes en una empresa es una función logarítmica del número de empleados totalesTambién formulada como "no importa quien seas, la mayoría de la gente inteligente trabaja para otro", la Ley dictada por Bill Joy ofrece una visión un tanto pesimista (¿realista?) de nosotros mismos y nuestro entorno de trabajo. Pero ojo, que no lo decía cualquiera, que este señor es co-fundador de Sun y, probablemente, estuviera describiendo lo que veía.

29. Ley de Lister
La gente bajo presión no piensa más rápidoBonita frase para escribir en un post-it y pegárselo en la frente a alguien a ver si se da por aludido. Y es que efectivamente, la presión y la velocidad de pensamiento no son magnitudes proporcionales, pero es Tim Lister, un consultor, formador y escritor experto en gestión de riesgos en procesos de desarrollo de software, el que lo enunció de esta forma tan tajante y certera.

30. La navaja de Occam
En igualdad de condiciones la solución más sencilla es probablemente la correctaEn el siglo XIV, Guillermo de Ockham, fraile franciscano y filósofo, postulaba de esta forma el principio de economía, utilizada en disciplinas tan dispares como la teología, informática o lingüística. De hecho, podríamos considerarlo la base de principios como KISS (Keep It Simple, Stupid), o YAGNI (You ain't gonna need it), asociados habitualmente a la programación extrema pero válidos en cualquier tipo de desarrollo.
Una curiosidad, el tercer episodio de la primera temporada de la serie House tenía este título, haciendo referencia a la solución del caso médico propuesto.
Fuentes:
- Global Nerdy: Laws of software development
- Jugando a crear: Leyes del desarrollo de software
- Wikipedia: List of eponymous laws
- sysprog.net: Computer laws
- Haacked: 19 Eponymous Laws Of Software Development
Publicado en: Variable not found.
» Leer más, comentarios, etc...
Variable not found
30 Leyes epónimas relacionadas con el desarrollo de software (II)
Febrero 7th, 2010 - [Enlace local]
Este post es una continuación de 30 Leyes epónimas relacionadas con el desarrollo de software.

11. Ley de Linus
Dados suficientes ojos, todos los errores son obviosPues sí, Linus Torvalds, uno de los más famosos artífices de Linux tal y como es conocido hoy en día, no sólo desarrollaba software, también emitía este tipo de aseveraciones en las que exponía las ventajas del modelo de desarrollo cooperativo y abierto frente al propietario; otros simplemente ven esta teoría como una barbaridad desde el punto de vista de la seguridad y mantenimiento de los sistemas.
Aunque la frase fue cosa de Linus, fue Eric S. Raymond, un hacker a la antigua usanza, el que la popularizó y le dio el nombre de su creador.

12. Ley de Reed
La utilidad de grandes redes, y en particular las sociales, crecen exponencialmente con el tamaño de la redDavid P. Reed, científico americano, enunció esto que parece obvio en los tiempos actuales dado el tamaño y utilización de este tipo de redes. En esta entrada de la wikipedia podéis encontrar una introducción del soporte teórico en el que se basa, que explica en esencia la facilidad con la que crece el número de subgrupos posibles entre usuarios en relación al número de usuarios o de pares.

13. Ley de Moore
La potencia de los ordenadores se duplica cada dos años, reduciendo además su costeRepetida hasta la saciedad en revistas de cacharreo, y constatada desde hace décadas, fue promulgada por Gordon Earl Moore, quien por cierto es co-fundador de Intel, fijaos si lo tenía claro el muchacho, en 1965 (!). No sé si entonces utilizó la bola de cristal, era una declaración de intenciones, o simplemente es un genio, pero desde luego su ley es una referencia de la medida del avance en los ordenadores y demás dispositivos basados en tecnología similar, y un objetivo mínimo a cumplir.

14. Ley de Wirth
El software se ralentiza más deprisa de lo que se acelera el hardwareBrillante la frase de Niklaus Wirth, que allá por el año 1995, aún sin conocer Windows Vista, observó su entorno y predijo la situación actual: cada vez el software es más lento y pesado, a pesar de que según la Ley de Moore tendría que ser al contrario. Este señor, una eminencia, es conocido sobre todo por haber dirigido la creación de los lenguajes Pascal, Modula y algunos otros menos difundidos.
¿Será coincidencia que en ese mismo año, 1995, fue el lanzamiento oficial de Java? ;-P

15. Ley de Zawinski
Todo programa intenta expandirse hasta que pueda leer emails. Aquél que no pueda ser expandido hasta ese punto, será sustituido por otro que sí tenga esa capacidadLo que más me ha llamado la atención de Jamie Zawinski aparte de su metafórica ley que critica el crecimiento, a veces sin sentido, del software, es su página web personal. No os la perdáis, pues es bastante indicativa del tipo de individuo de que se trata, todo un friki, padre entre otros de una versión de Netscape, Grendel, Netscape Mail & News, Lucid Emacs, etc. También es curioso que es propietario de un club nocturno en San Francisco, este sí que sabe ;-)

16. Las tres Leyes de Clarke
El conocido científico y escritor británico Sir Arthur Charles Clarke enunció estas tres leyes porque, según comentaba,Primera Ley de Clarke
Cuando un anciano y distinguido científico afirma que algo es posible, probablemente está en lo correcto. Cuando afirma que algo es imposible, probablemente está equivocado.
Segunda Ley de Clarke
La única manera de descubrir los límites de lo posible es aventurarse hacia lo imposible.
Tercera Ley de Clarke
Cualquier tecnología lo suficientemente avanzada es indistinguible de la magia.
"si tres leyes fueron suficientes para Newton, modestamente decido parar aquí".
Arthur C. Clarke fue autor de un gran número de libros, relatos y obras de divulgación, destacando su novela y participación en el guión de 2001: Una odisea en el espacio.


17. El principio de Dilbert
Las compañías tienden a ascender sistemáticamente a sus empleados menos competentes a cargos directivos para limitar así la cantidad de daño que son capaces de provocarEste complemento perfecto para el Principio de Peter fue observado por Scott Adams, autor de Dilbert, una popular tira cómica sobre el mundo de la empresa que se publica en 1200 periódicos de todo el mundo.
Scott Adams es considerado uno de los 50 pensadores más influyentes en el mundo de la empresa, incluso por encima de personajes como Steve Jobs o Al Gore. Se trata, además, de un epónimo curioso en cuanto a que su nombre no proviene directamente de su autor, sino de la obra de su autor.

18. Ley de Gilder
El ancho de banda aumenta a un ritmo tres veces superior a la potencia de los ordenadoresPues sí, cualquiera lo hubiera dicho hace unos años... pero la verdad es que hoy en día la velocidad en las conexiones a la red son increíbles. Y por suerte, sin subir proporcionalmente el coste ;-)
George Gilder es un controvertido escritor e intelectual americano, entusiasta de la tecnología e internet, que en la actualidad dirige el Gilder Technology Report, un sitio exclusivo de información de ámbito económico y tecnológico. Según comentan, "sus hijos no estudian español, sino C++" (visto en Wikiquote).

19. Ley de Amdahl
El incremento de velocidad de un programa utilizando múltiples procesadores en computación distribuida está limitada por la fracción secuencial del programa
Esta ley, de gran aplicación en el cálculo de rendimiento de sistemas cuando uno de sus componentes es mejorado o en contextos de procesamiento en paralelo, fue enunciada por Gene Myron Amdahl en 1967, en sus tiempos como trabajador de IBM Corporation, que abandonó varias veces por disconformidad con el escaso trato humano en esta empresa, muy encorsetada y llena de burocracia.
Según demuestra matemáticamente, llegados a un punto el rendimiento de un sistema no está relacionado con el número de procesadores instalados, sino con la eficiencia de los algoritmos empleados.

20. Ley de Myhrvold
El software es un gas; se expande hasta rellenar su contenedorClaro, esto explica por qué da igual la potencia y capacidad del ordenador que tengamos: nuestro software lo llenará como si se tratara de un globo, hasta ponerlo a reventar.
Y lo dijo ni más ni menos que Nathan Myhrvold, ex-director de tecnología de Microsoft y fundador de Intellectual Ventures, una empresa dedicada crear y patentar, pero curiosamente no a poner en explotación, inventos para sectores como el software, semiconductores, redes, lásers, biotecnología y otros dispositivos.
Continuar en 30 Leyes épónimas relacionadas con el desarrollo de software (y III).
Publicado en: Variable not found
» Leer más, comentarios, etc...
Variable not found
30 Leyes epónimas relacionadas con el desarrollo de software (I)
Febrero 7th, 2010 - [Enlace local]
Un epónimo es el nombre de una persona o lugar que cede su nombre a una época, pueblo, unidad, ley, etc. Son epónimos por ejemplo "Diesel", cedido por Rudolf Diesel, inventor de este tipo de motores, o "Hamburguesa", infame trozo de carne picada cuyo nombre procede de su lugar de origen.
Hace unos años, el gran Phil Haack posteó sobre leyes epónimas relacionadas con el desarrollo de software en "19 Eponymous Laws Of Software Development", y seleccioné las que me resultaron más interesantes en un par de posts.
Ahora los he vuelto a maquetar y les he añadido un nuevo conjunto de leyes muy interesantes para todos los que nos dedicamos al mundo del desarrollo de software, y muchas de ellas incluso aplicables a otros ámbitos.

1. Ley de Postel
Sé conservador en lo que hagas y liberal en lo que aceptes de los demásEsta frase, de Jonathan Bruce Postel, también llamada Principio de Robustez, es la piedra filosofal del protocolo TCP, y está recogida en la RFC 793, sección 2.10, de septiembre de 1981.

2. Ley de Parkinson
El trabajo se extiende siempre hasta rellenar la totalidad del tiempo disponible para completarloEsta ley fue postulada inicialmente en 1955 por C. Northcote Parkinson en The Economist y más tarde entró a formar parte de su libro, basado principalmente en las experiencias de la administración británica.

3. Principio de Pareto
Para muchos fenómenos, el 80% de las consecuencias derivan del 20% de las causasVilfredo Pareto fue un estudioso de la economía y sociología del siglo XIX, y se fijó que el 80% de las propiedades y riqueza estaban repartidas entre el 20% de la población, enunciando su famoso principio. A partir de ahí, se piensa que esta proporción es cierta en múltiples ocasiones, hasta en el número de bugs en el código fuente de un software, o el tiempo de desarrollo de funcionalidades.

4. Revelación de Sturgeon
El noventa por ciento de cualquier cosa es basuraTheodore Sturgeon era un autor de ciencia ficción americano que escribió esta frase defendiendo a este tipo de literatura de críticos que opinaban que el 90% era una porquería.
Hay un corolario que dice
"La revelación de Sturgeon es cierta salvo para la basura, donde el 100% es basura".

5. El principio de Peter
En una jerarquía, todo individuo tiende a subir hasta alcanzar su nivel de incompetenciaSeguro que todos conocéis ejemplos de ello: un fabuloso desarrollador es ascendido a directivo en una empresa, la cual gana un gestor pésimo y pierde un programador excelente. Doble penalización. Lawrence J. Peter, pedagogo de profesión, ya lo enunció en 1968 en el libro El principio de Peter

6. Ley de Hofstadter
La realización de un trabajo siempre dura más de lo esperado, incluso habiéndose tenido en cuenta la Ley de HofstadterEsta genial y recursiva Ley creada por el científico, filósofo y académico estadounidense Douglas Hofstadter es absolutamente cierta. Y si no, pensad un poco, ¿cuántas veces habéis estimado plazos en un desarrollo, lo habéis incrementado de forma considerable por los imprevistos y aún así os habéis quedado cortos?

7. Ley de Murphy
Si algo puede ir mal, lo haráLa famosa ley, también enunciada en forma de tostada que recurrentemente cae con la mantequilla hacia abajo, fue dictada por Edward A. Murphy, Jr., mientras trabajaba para la fuerza aérea americana como ingeniero, diseñando un sistema de cohetes experimental. Sería lógico pensar que el experimento acabó en tragedia, pero parece ser que la creación y consideración de esta ley les ayudó a evitar graves desastres en sus pruebas.

8. Ley de Brooks
Incluir trabajadores en un proyecto retrasado hará que éste avance aún más lentamenteFred Brooks postuló esta ley en su famoso libro The Mythical Man-Month: Essays on Software Engineering
"Una señora es capaz de tener un hijo en nueve meses, pero este plazo no puede disminuir por muchas mujeres embarazadas que pongamos a ello". Simplemente genial.

9. Ley de Conway
Cualquier software refleja la estructura organizacional de quien lo produjoA pesar de que suena a guasa, la ley de Melvin Conway no puede ser más cierta. Una empresa con tres grupos de desarrollo tenderá a generar software distribuido en tres subsistemas, reflejo fiel de las relaciones entre los grupos participantes. Y por cierto, extrapolando un poco... ¿habéis pensado alguna vez que el software que se hace en vuestra empresa es un desastre? ¿creéis que con esta ley podríais obtener alguna conclusión? ;-D

10. Principio de Kerckhoffs
En términos de criptografía, un sistema debería ser seguro incluso si todo sobre el mismo se conoce públicamente, salvo una pequeña porción de informaciónEs increíble que Auguste Kerckhoffs lingüista y criptógrafo alemán, enunciara en el siglo XIX este principio, base de todos los sistemas de criptografía de clave pública actuales.
Publicado en: http://www.variablenotfound.com/.
» Leer más, comentarios, etc...
Fetishcode...Thinking in objects
Acceder a métodos del AppModule desde el backing bean
Febrero 7th, 2010 - [Enlace local]
A
» Leer más, comentarios, etc...
Fetishcode...Thinking in objects
Obtener la conexión actual de nuestro AppModule
Febrero 7th, 2010 - [Enlace local]
A
» Leer más, comentarios, etc...
MonoCaffe
Wooops… Fallo en MCM 0.9
Febrero 7th, 2010 - [Enlace local]
Gracias a mis beta testers :) he arreglado un par de fallos en la nueva versión de MCM 0.9. Por una parte, el script de instalación no copia el fichero "tips.json" al directorio del usuario, el script de arranque no añadía una nueva linea de configuración "buffer.size" al fichero mcm.conf y finalmente, por alguna razón mágica, Glade dejo de escribir las señales de los eventos para las acciones de importar y exportar. Todos estos fallos has sido resueltos, así que si habéis tenido estos problemas, descargad los ficheros nuevamente y todo debería funcionar sin problemas.
» Leer más, comentarios, etc...
Sergio Guerrero | Desarrollo web y Tiendas virtuales
Webinar sobre Desarrollo en Magento
Febrero 7th, 2010 - [Enlace local]
El equipo de Magento nos ofrecerá, el próximo miércoles día 10 de febrero de 2010 a la 18:00 horas (hora Española; 9:00 AM hora de San Francisco), un seminario web para desarrolladores de Magento. Esta sesión estará dirigida a aquellos desarrolladores que quieran ampliar sus conocimientos sobre programación en Magento.
Bajo el título "Las mejores prácticas para el desarrollo en Magento", el equipo de desarrollo de Magento junto con la compañía Zend (creadores de PHP, PHP Zend Framework, etc) nos ilustrarán con los siguientes temas:
- Normas y convenciones de Magento y Zend Framework
- El estilo de programación de Magento
- Cómo configurar un proyecto de Magento en Zend Studio
- Programando bien, el código escalable y los principios de escalabilidad de Magento
- Las mejores prácticas para la programación de plantillas
- ¿Cómo convertirse en colaborador oficial de Magento y enviar Código?
No te lo puedes perder. Registrate al seminario para desarrolladores de Magento
Fuente: Blog Oficial de Magento
Entradas relacionadas
» Leer más, comentarios, etc...
Sergio Guerrero | Desarrollo web y Tiendas virtuales
SEO Magento – Guía SEO para Magento
Febrero 6th, 2010 - [Enlace local]
Desde que se presentó la primera versión de Magento, ha pasado ya más de un año y seguimos sin tener un "guía definitiva" de SEO para Magento en español. Durante todo este tiempo, se ha escrito mucho sobre el posicionamiento en buscadores, pero siempre en los foros, en algunos blogs, etc. Nunca se ha mostrado una visión completa de este tema y es hora de recopilar todo ese conocimiento en un sólo artículo: la guía SEO Magento.
Conforme las búsquedas, el SEO y Magento vaya evolucionando esta guía se irá actualizando con nuevos consejos, trucos y con las mejores prácticas. Es muy recomendable mantenerse actualizado a la última versión de Magento, siempre que sea posible, para, de esta forma, beneficiarse de las mejoras y de las correcciones de errores que se vayan incorporando.
Para ir haciendo un seguimiento de las correcciones que se van incorporando en cada versión de Magento, podemos consultar su Hoja de Ruta.
Índice de contenidos
- 1. Optimización técnica básica
- 2. Optimización de la plantilla de Magento
- 3. SEO Avanzado en Magento y el contenido duplicado
1. Optimización técnica básica
1.1 Configuración general
Magento es una de las plataformas de comercio electrónico mejor preparada para los motores de búsqueda, sin necesidad de instalar extensiones adicionales, pero existen algunos errores conocidos, que deben ser corregidos a la hora de optimizar el SEO de nuestra tienda virtual con Magento. El primer paso debería ser siempre utilizar la última versión estable de Magento. A continuación deberemos activar la reescritura de las direcciones URL. Para activar esta opción, accederemos a la configuración de la siguiente forma: Administración -> Sistema -> Configuración -> Configuración-> Web -> Optimización para motores de búsqueda: Usar reescrituras del servidor web (Sí). Otra buena opción a configurar dentro de esta misma pantalla es "Añadir el código de tienda a las URLs", que será recomendable establecer a Sí en caso que tengamos configurada varias vistas de la tienda.
Activando la reescritura y la opción Añadir el código de tienda a las URLs, tendremos URLs com por ejemplo:
- http://www.mitiendamagento.com/espanol/extensiones-magento.html
- http://www.mitiendamagento.com/english/extensiones-magento.html
1.1 Con WWW o Sin WWW
Dentro de la opción: "Optimización para motores de búsqueda", mencionada en el apartado anterior, y bajo las etiquetas: "Inseguro" y "Seguro", se pueden encontrar las URLs base, donde podemos fijar el dominio de nuestra tienda y escoger entre un dominio con www o sin www. Realizando esta configuración solo estaremos indicando cual es nuestra URL preferida, pero no estaremos realizando ninguna redirección desde la versión con www a la versión sin, ni viceversa. Por lo tanto, será buena idea crear una redirección 301 mediante el mod_rewrite de htaccess, que además de resolver el problema entre URLs con www y sin, impide que Magento añada el identificador de sesiones (SID) en nuestras URLs. A la hora de realizar dicha redirección, debemos asegurarnos de indicar el mismo dominio, tanto en Magento, como en el archivo .htaccess.
El siguiente ejemplo .htaccess servirá para redireccionar desde index.php a la raiz de la tienda:
RewriteBase / RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.mitiendamagento.com/ [R=301,L]
En caso que nuestra tienda se encuentre en un subdirectorio (http://www.mitiendamagento.com/tienda), utilizaremos el siguiente código:
RewriteBase /tienda/ RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /magento/index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.mitiendamagento.com/tienda/ [R=301,L]
1.2 Ajustes de la cabecera
Por defecto, nuestra instalación de Magento trae como título: "Magento Commerce", título poco adecuado para que nuestra tienda obtenga el tráfico que se merece. A la hora de redactar los títulos de nuestra tienda (productos, categorías, etc), deberemos tener en cuenta los siguientes aspectos:
- Los motores de búsqueda dan más importancia a las primeras palabras del título, así pues, si nuestras palabras clave se encuentran cerca del comienzo será más probable que nuestra página obtenga mejores posiciones.
- Las personas que consultan las páginas de resultados en los buscadores ven antes las primeras palabras de los títulos y de las descripciones. Si nuestras palabras clave están colocadas al comienzo, es más probable que recibamos más visitas.
En primer lugar, cambiaremos el título principal de nuestra tienda. Iremos a Sistema -> Configuración -> Cabecera HTML y dentro de "Título por defecto" introduciremos un buen título que describa perfectamente nuestra web. Este título aparecerá en varias páginas además de la página principal, por ejemplo, en la página de Contacto, en Términos de búsqueda más utilizados…
Para agregar el nombre de la tienda a todos los títulos, incluyendo las categorías y los productos, deberemos poner dicho nombre dentro del campo sufijo del título (Title Suffix), siendo buena idea mantener en blanco el prefijo (Title Prefix) para que los títulos de cada página queden siempre al comienzo (por importancia de las primeras palabras), y que justo después aparezca el nombre de la tienda. Mantendremos también en blanco tanto la "Descripción por defecto" como las "Palabras Clave por defecto". Para evitar que nuestra tienda sea indexada por los buscadores, mientras esta no esté en producción, puede ser útil fijar a "NOINDEX, NOFOLLOW" el parámetro robots (Default Robots). En el resto de casos, deberemos asegurarnos que este parámetro sea "INDEX, FOLLOW".
Ahora que estamos optimizando las cabeceras de las páginas, puede ser una buena idea agregar el nuevo tag canonical que nos ayudará a eliminar el contenido duplicado de los índices de los buscadores, mejorando así nuestro SEO. Actualmente existe un módulo para gestionar las URLs Canónicas en Magento y lo podemos instalar mediante Magento Connect.
Podemos encontrar más información sobre este tag en las siguientes direcciones:
- Baluart.net – Canonical Tag
- SEOMoz.org – Canonical Tag
- Yoast.com – Canonical Tag
1.3. Páginas adicionales (Páginas del CMS)
A primera vista, el sistema de administración de contenidos o CMS de Magento puede parecer carente de ciertas funcionalidades, pero es lo suficientemente potente y flexible para la mayoría de usos. Una de las ventajas de este CMS es que podemos controlar cada uno de los aspectos relacionados con las páginas (estado, vista, título, contenido, diseños, meta datos…). Una vez que hayamos introducido el contenido de cada página, deberemos escoger una URL Amigable (SEF URL; Search Engine Friendly URL), un título para la página (teniendo en cuenta los consejos del apartado 1.2), e ir a la pestaña de Meta Datos para escribir la descripción de la página (descripción o snippet que aparecerá en los buscadores).
Las palabras clave (Keywords) pueden dejarse en blanco, pero no está de más cumplimentar este campo si dicha página tiene cierta importancia. La descripción de la página tiene una función muy relevante: motivar a los usuarios para que la visiten, por lo tanto, deberemos redactarla concienzudamente describiendo lo que el usuario encontrará y de forma que llamemos su atención. Por eso, las buenas descripciones deben ser redactadas manualmente, y si preferimos que estas sean "generadas" de forma automática, lo mejor será dejarlas en blanco y ceder el control a los motores de búsqueda.
Si no utilizamos la meta descripción, el motor de búsqueda intentará encontrar los términos de la búsqueda dentro de nuestra página y automáticamente obtendrá un fragmento de texto alrededor de dichos términos. Esto nos proporcionará una o dos palabras en negrita dentro de la página de resultados y seguramente, una descripción poco llamativa.
1.4. Optimización de las categorías
Magento nos ofrece la posibilidad de añadir el nombre de las categorías en las URL de los productos, pero en las versiones actuales de Magento, esta funcionalidad no está muy bien desarrollada y genera contenido duplicado (por lo menos, hasta la versión 1.3.4.2). Al activar esta opción, el contenido de un producto podrá ser consultado desde varias URLs:
- http://www.mitiendamagento.com/catalog/producto/view/id/233
Esta URL no se mostrará nunca - http://www.mitiendamagento.com/catalog/producto/view/id/233/category/2
Esta URL no se mostrará nunca - http://www.mitiendamagento.com/guia-seo.html
Se utiliza en la página principal, en los bloques, etc - http://www.mitiendamagento.com/posicionamiento-web/guia-seo.htmk
Este enlace aparecerá en las páginas de las categorías - http://www.mitiendamagento.com/posicionamiento-web/libros/guia-seo.html
Este enlace aparecerá en las páginas de las subcategorías
Mientras el funcionamiento de esta opción sea el mencionado, será buena idea deshabilitarla o aplicar alguna modificación del Core de Magento para poder utilizar los nombres de las categorías en las URLs de los productos sin generar contenido duplicado.
Para activar/desactivar esta opción, accederemos al siguiente apartado: Sistema -> Configuración -> Catálogo -> Catálogo -> Optimizaciones para el motor de búsqueda: Usar rutas de categorías para la URL de los productos (SI/NO).
Es el momento de establecer los detalles de cada una de nuestras categorías (Admin -> Catálogo -> Gestionar las Categorías). Los campos más importantes de las categorías en relación con el posicionamiento web son:
- Meta Descripción: indicaremos un descripción atractiva de la categoría, teniendo en cuenta que dicha descripción será la que los usuarios verán en los motores de búsqueda.
- Título de la página: dejaremos este campo en blanco para que Magento genere un título con el nombre de dicha categoría y el de sus categorías padre. Si indicamos un título personalizado, el título de la categoría será exactamente el que indiquemos, sin incluir los nombres de las categorías padre.
- URL Key: intentaremos mantener una URL corta, pero al mismo tiempo rica en palabras clave. Es recomendable eliminar los artículos, las preposiciones y las conjunciones, como por ejemplo: "el", "y", "de", "para", "en", "a", etc. A la hora de escoger un nombre para la URL, deberemos tener en cuenta que este parámetro será único para todas las vistas y por lo tanto, en las tiendas multiidioma se mostrará siempre el mismo texto de URL. En este caso, siempre que sea posible, deberemos buscar una URL independiente del idioma u optar por aquel idioma que más nos convenga.
Magento permite indicar, para cada una de las vistas, un Nombre, una Descripción, un Título de Página y unos Meta Datos distintos. Esto supone una gran ventaja a la hora de posicionar nuestros contenidos en los buscadores.
1.5. Optimización de los productos
La optimización de las páginas de los Productos es similar a la de las Categorías.
En tiendas muy grandes puede suponer un enorme trabajo adicional el hecho de tener que indicar todos los Meta Datos, pero Magento ofrece la opción de generarlos automáticamente para cada una de las Vistas del producto, marcando la casilla: "Usar Valor por defecto". Como ya se ha comentado en los puntos anteriores, lo más recomendable, para conseguir buenos resultados, es redactar manualmente los Meta Datos. Si indicamos el Meta Título, deberemos tener en cuenta que estaremos sobreescribiendo el título por defecto (este contiene el nombre de las categorías, el nombre del producto, el prefijo y el sufijo), pero se mantendrá tanto el prefijo como el sufijo establecidos en la configuración global de la tienda.
Uno de los aspectos relacionados con el SEO, que con frecuencia se pasa por alto, es la forma como gestionamos nuestras imágenes. Por ejemplo, si escribimos buenos textos alternativos y pensamos bien los nombres que le ponemos a los archivos, podemos conseguir un incremento de nuestras visitas gracias a los motores de búsqueda de imágenes. Además, estaremos mejorando la accesibilidad de nuestra página, y por lo tanto, ayudando a aquellas personas con dificultades, que utilizan lectores de pantalla y que sin los textos alternativos serán incapaces de entender el contenido de dichas imágenes.
Por defecto, las imágenes serán renombradas con el título del producto, y lo mismo sucederá con los títulos y textos alternativos. Con un poco de esfuerzo adicional, podremos indicar buenos títulos y textos alternativos para cada una de las imágenes. Bajo la pestaña "Imágenes", dentro de la información del producto, podemos definir las etiquetas para cada una de las imágenes, este valor será utilizado tanto para el texto alternativo, como para el título de la imagen. Por supuesto, podemos indicar dichas etiquetas para cada una de las vistas de la tienda.
2. Optimización de la plantilla de Magento
2.1. Plantilla optimizada (Blank Template)
Las plantillas que trae Magento, como por ejemplo: "Default Theme", "Blue Skin" o la "Modern Theme", no hacen un buen trabajo en relación con los encabezados, desde el punto de vista del posicionamiento web. Para hacernos la vida más fácil, el equipo de Yoast ha creado una nueva plantilla que toma como base la plantilla "Magento Blank Theme" y que incorpora todas las mejorar mencionadas en esta guía de SEO para Magento. Esta plantilla la podemos encontrar entre las contribuciones de Magento con el nombre: Blank Magento SEO Theme.
2.2. Encabezados
Por defecto, el logotipo de la página suele ser un pero sólo debería serlo en la página principal. En el resto de páginas, el logo debería ser, como mucho, un ,
. Lo más importante es conseguir que el título de cada página tenga una etiqueta , por ejemplo, en la página de una categoría el título más importante o debería se el nombre de dicha categoría y de igual forma, en la página de un producto.
El siguiente paso consiste en limpiar el exceso de etiquetas de encabezado que restan importancia a las que realmente lo son o deberían serlo. Por ejemplo, podría ser buena idea deshacerse de los encabezados de las columnas laterales, o dar relevancia a los textos de la tienda (incluyendo palabras clave). No existe ninguna razón por la que las palabras clave deban estar dentro de un Ahora pasaremos a optimizar nuestro contenido. En las páginas de las categorías pondremos los nombres de los productos dentro de etiquetas Para obtener más información acerca de porqué es importante tener buenos encabezados, podemos leer este artículo sobre el HTML semántico y el SEO. Todo el código javascript y CSS que tengamos directamente dentro de los ficheros de nuestra plantilla deberían ser movidos a archivos externos (archivos js y CSS) para mantener limpia nuestra plantilla y mejorar el SEO de Magento. Con estos cambios, nos aseguraremos de que los usuarios podrán almacenar estos archivos en caché en la primera carga de la página, y de que los motores de búsqueda no tienen que descargar el mismo código la mayoría de las veces. Un factor muy importante, en relación con el número de páginas que un motor de búsqueda puede indexar dentro de nuestra tienda en un sólo día, es la velocidad de carga. Podemos realizar varias acciones para mejorar la velocidad de carga de nuestro Magento: Otro aspecto que debemos tener en cuenta es el número de archivos externos que se cargan en cada petición de página. Por cada archivo que el usuario descarga desde nuestra página web, el navegador tiene que crear una nueva conexión con el servidor y esto supone que necesitaremos más tiempo para descargar la página completa. Por eso, será buena idea reducir el número de archivos externos combinándolos en uno solo. Por defecto, Magento permite combinar casi todos los archivos Javascript en uno sólo, mediante la opción: Sistema -> Configuración -> Avanzado -> Desarrollador -> Ajustes de Javascript -> Combinar archivos Javascript (Sí). Magento no realiza esta tarea con las hojas de estilo y, por ejemplo, la plantilla por defecto trae 6 hojas de estilo diferentes. Nosotros podemos combinar el contenido de estas hojas de estilo en un solo archivo, exceptuando el contenido del archivo print.css, que debe mantenerse por separado. Podemos realizar esta combinación manualmente o podemos utilizar el módulo Fooman Speedster module, que además de hacer el trabajo de fusión por nosotros, se encargará de comprimir y cachear tanto los archivos javascript como los css. Antes de instalar el módulo Speedster, deberemos tener en cuenta sus requisitos, como, por ejemplo, que el Una vez que hayamos revisado todos los aspectos básicos, podríamos reducir toda la problemática restante a un único tema: el contenido duplicado. Para los productos de nuestro catálogo, al menos, las siguientes URLs muestran exactamente el mismo contenido: Además de estas URLs, también tendremos las páginas de comentarios donde Magento muestra casi el mismo contenido que en la ficha de los productos. Otro problema de este tipo lo encontraremos en las categorías, donde podemos llegar a tener contenido duplicado a causa de la navegación por capas (filtros) y/o las opciones de ordenación. Esto significa, que en el peor de los casos, un producto puede estar disponible, al menos, en 4 páginas además de la página donde realmente debería mostrarse. Para evitar esta problemática, vamos a deshacernos de todos los grupos de contenido duplicado, permitiendo que estos sean rastreados por los motores de búsqueda (follow), pero evitando que sean indexados (noindex). También corregiremos los problemas mencionados para las categorías en relación con la navegación por capas y la ordenación de los resultados. Las páginas sin contenido como pueden ser la URLs de las imágenes, la página de contacto, etc, son páginas para las que debemos realizar ajustes, de forma que los motores de búsqueda no las indexen, pero que rastreen todos los enlaces que puedan encontrar dentro. Para realizar dichos ajustes, existe la extensión: Yoast robots meta module, que nos permitirá ajustar el tag meta robots para cada una de las páginas sin contenido. Otro ajuste que deberemos realizar a la hora de optimizar nuestro SEO en Magento, consistirá en evitar que las arañas sigan aquellos enlaces poco relevantes para nuestro negocio, como por ejemplo, la página de login, el proceso de compra, la lista de productos deseados y otras páginas sin contenido. Los mismo sucede con los enlaces hacia nuestros feeds RSS, la navegación por capas, enlaces como agregar a la lista de productos deseados, agregar a la comparación, etc. Actualmente no existen extensiones para agregar el parámetro: rel="nofollow" en dichos enlaces, por lo que deberemos realizarlo manualmente y directamente sobre la plantilla. Para ayudar a los motores de búsqueda a entender el contenido duplicado de nuestra tienda, tenemos la posibilidad de indicar, en cada una de nuestras páginas, la URL principal utilizando el nuevo tag para URLs Canónicas. Para aplicar este tag disponemos de un módulo sencillo de instalar: URLs Canónicas para Magento (Canonical URLs for Magento). Los Sitemaps en XML són una forma sencilla de ayudar a que los motores de búsqueda localicen nuestro contenido. Los Sitemaps no nos ayudarán a posicionar mejor, pero si que conseguirán que nuestro contenido quede indexado de forma más rápida. Podemos crear un Sitemap XML manualmente de la siguiente forma: Admin -> Sistema -> Configuración -> Google Sitemap -> Agregar un Sitemap, indicamos el nombre del archivo resultante, la ruta donde se almacenará y la vista o vistas que queremos incluir, presionaremos sobre el botón: Generar y Guarda y ya tendremos nuestro Sitemap creado. A continuación deberemos indicar a los buscadores donde se encuentra ubicado nuestro Sitemap XML y para eso disponemos de varias opciones: Siempre que sea posible, puede ser buena idea utilizar ambas opciones y en caso de no ser así, por lo menos utilizaremos la opción del robots.txt de la siguiente forma: El proceso de regeneración del Sitemap no se realiza de forma periódica y automatizada. Para asegurarnos de que este archivo se encuentra actualizado cuando los motores de búsqueda lo consulten, es buena idea utilizar un tarea programada en el servidor (cron job), que se encargue de actualizar el contenido del Sitemap. Para informarnos sobre la creación de tareas programadas o cron jobs en Magento, podemos consultar la siguiente dirección: http://www.magentocommerce.com/wiki/how_to/how_to_setup_a_cron_job. Esta guía de SEO para Magento cubre los aspectos más importantes que debemos tener en cuenta a la hora de optimizar nuestra tienda. La versión que aquí se expone es una traducción personal del artículo original escrito por Joachim Houtman, que podemos encontrar en la web de Yoast. » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] Muchas veces por Picando Código postié sobre Navegadores Web. Es un tema que personalmente me interesa mucho, seguirles el desarrollo y ver las variaciones de cada uno, conocer cómo surgieron, etc. Incluso generalmente tengo al menos 5 o 6 navegadores web diferentes instalados en cada computadora. Si navegan por la categoría Browsers del blog, sabrán lo que les digo… Por eso, tuve que canalizar todo eso por otro lado, para no saturar Picando Código con ese tema en particular, en un nuevo blog: Navegadores Web. Si les interesa, dense una vuelta por el primer post: Hola mundo de los navegadores web y dejen su comentario. Y de bonus, dejo las noticias de navegadores web de esta semana: » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] Esta semana publiqué varios posts sobre Scrum en el otro blog, las comparto por acá ya que les pueden interesar: » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] DefectiveByDesign reporta que la respuesta a la protesta y petición sobre el iPad ha sido tremenda: 5.000 personas firmaron en las primeras 24 horas, con cobertura en la presa técnica, Digg, Slashdot, Reddit, The Guardian, NPR, y más. La petición sigue juntando firmas, pueden firmarla y compartirla para ayudar a alcanzar las 10.000 firmas. Se entregó la carta con las primeras 5.000 firmas en una tableta iPad gigante, directamente a Steve Jobs. Por cada bloque de 5.000 firmas se entregará una tableta nueva. En una postal acompañada de una tableta, le están diciendo a Steve Jobs que todavía tiene una oportunidad de hacer lo correcto, “5.000 personas en 24 horas se tomaron el tiempo de su día para llamarle la atención sobre esto, y demandan un cambio. Todavía hay tiempo para que haga lo correcto en los próximos 60 días, antes que el iPad salga a la venta. Puede retirar todo el DRM del dispositivo y la App Store, y abrazar los ideales que clama defender — creatividad, libertad e individualidad.” La tableta incluye una cabeza de Steve Jobs “malvado” de la publicidad paródica de 1984 de Apple, y se tomó prestado un sello de Apple Entre los 5.000 nombres está el mío, si todavía no han firmado, todavía pueden hacerlo, y si ya lo hicieron, busquen su nombre en la foto: » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] Un par de enlaces sobre Java: » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] Hace unos días, aparentemente tras una actualización en Debian Squeeze, obtuve un error al intentar montar por NFS un directorio compartido en el servidor Ubuntu del trabajo: Fue algo raro, ya que antes funcionaba automáticamente, y no encontraba errores en el fstab ni nada. Así que buscando un poco me encontré con este artículo cuyo autor sufría el mismo problema. Incluso usando la opción mount -v (modo verbo) la información provista no es demasiado específica: Al igual que en el post en cuestión, mi computadora intenta usar NFS versión 4 para montar el directorio. Sin embargo el servidor usa NFS versión 3. La solución es agregar el parámetros nfsvers=3 en el fstab: Con esto quedó funcionando correctamente. » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] Con este post comenzamos una serie de recomendaciones, tips y tutoriales enfocados a cubrir aquellos temas básicos de la tecnología Flex que esperamos sean de utilidad para los entusiastas de la plataforma. Uno de los primeros tips que es importante conocer cuando hacemos aplicaciones con Flex utilizando Flex/Flash Builder es el manejo de los archivos de salida. De forma automática cuando generamos un proyecto nuevo con la herramienta se crean varias carpetas: bin-debug, html-template, src y libs. Es común encontrar por la red aplicaciones Flex de desarrolladores que al compilar sus proyectos por descuido o desconocimiento suben las aplicaciones SWF generadas en la carpeta bin-debug, esta versión contiene información adicional que es utilizada cuando utilizamos el comando debug de la herramienta. La forma correcta de subir nuestras aplicaciones al servidor sería aprovechando las versiones generadas a partir del comando “Export Release Build”, ya que al no incluir esa información adicional su peso es considerablemente menor que la versión de depuración. Tomemos como ejemplo una aplicación sencilla que contiene 3 componentes: Button, TextInput y DataGrid. Al compilar estar aplicación el SWF generado en la carpeta bin-debug tiene un peso de 449 kb. Ahora ejecutemos el comando Project > Export Release Build, el tamaño de la aplicación generada es de tan solo 276 kb, siendo el ancho de banda uno de los recursos más preciados en las aplicaciones de Internet es importante tener cuidado con estos pequeños detalles. Hace tiempo en algún taller de Flex recuerdo que utilicé el hashtag #flex101 para hablar de los fundamentos de la tecnología, por lo que los invito a compartir sus mejores tips en Twitter a la cuenta de @madeinflex no duden que en una entrada posterior merecerá que hagamos una compilación de los mejores. » Leer más, comentarios, etc... Febrero 5th, 2010 - [Enlace local] Leo en el blog de Andrew Glover, que el equipo de easyb ha publicado un pequeño videotutorial de introducción a cómo utilizar este framework de testing para hacer Behaviour Driven Development en la JVM, tanto para escribir specifications como stories. Aquí ya toqué el tema de easyb junto a grails, eso sí, no he llegado a utilizarlo de verdad. Otras alternativas que pueden ser interesantes para practicar BDD, y que pueden correr en la JVM son Spock, RSpec, JBehave… y unos cuantos más cuyos nombres no recuerdo » Leer más, comentarios, etc... Febrero 4th, 2010 - [Enlace local] Bruce Eckel (autor de Thinking in Java) publicó junto a James Ward el libro First Steps in Flex (Primeros pasos en Flex). El libro intenta enseñar Flex creando ejemplos y capítulos cortos, suficiente como para introducirse en cada tema. El asunto es que decidieron lanzar Screencasts gratuitos de cada capítulo del libro. En teoría, se obtiene la misma información de los seminarios online que del libro. Están en inglés, hablados y comentados por sus dos autores quienes van discutiendo el código. Pueden verlos en el sitio web: First Steps in Flex Un recurso interesante para quienes quieran comenzar con Flex. » Leer más, comentarios, etc... Febrero 4th, 2010 - [Enlace local] Inicio este post con la estupenda frase utilizada BI Fácil en el post Datos, información y conocimiento, si recuerdan sus clases de Base de datos encontramos que es muy común que se toque el tema de que los datos por si solos no nos dicen nada pero si los unimos nos dan información pero seguramente pocos saben como termina la historia, bueno si esa información la utilizamos para tomar decisiones estamos accionando, acciones de las cuales esperamos un resultado, y resultados de los cuales esperamos obtener valor, todo esto es sinónimo de empresa exitosa!!!. Excelente post, Datos, información y conocimiento » Leer más, comentarios, etc... Febrero 4th, 2010 - [Enlace local] Nueva versión de Monocaffe Connections Manager con una gran adición de la que estoy muy contento. Un widget al estilo breadcrumb para acceder a referencias a comandos, tal que el usuario no tenga que recordar cada opción, comando o conjunto de teclas de cada aplicación que usa. » Leer más, comentarios, etc... Febrero 3rd, 2010 - [Enlace local] Mi gran descubrimiento del día probablemente será una chorrada para la inmensa mayoría, pero también seguro que hay alguien que, como un servidor, no se había percatado hasta el momento de este detalle de IE8. » Leer más, comentarios, etc... Febrero 3rd, 2010 - [Enlace local] A » Leer más, comentarios, etc... Febrero 3rd, 2010 - [Enlace local] Ya he subido a github el código que añadimos el viernes en el taller de Grails(con algunos arreglillos que tenía pendientes) que hicimos en la sede de hispalinux Zaragoza. Aún siendo un día festivo, finalmente vinieron 10 personas, y eso que se despistaron un par de la hora(mea culpa por no mandar un email de recordatorio el día de antes :S). Creo que durante las casi 3 horas que duró, llegamos a ver bastante del framework y algunos detalles de lo que puede aportar groovy en casos prácticos. Antes de ponernos a trabajar sobre el código, también hice una pequeña presentación de introducción, para situar a la gente que no conociera demasiado acerca de groovy y grails. Al terminar el taller estuvimos charlando de varias cosas, lo más interesante: » Leer más, comentarios, etc... Febrero 2nd, 2010 - [Enlace local] Como siempre, esas extrañas manías de Microsoft de no permitir ciertas cosas con su sistema operativo que la mayoría vemos útiles. En mi caso, era utilizar mi HTPC para algo más que ver películas, con lo que quería dos cosas, por un lado permitir que varios usuarios se pudiesen conectar concurrentemente a la misma máquina y por otro, a ser posible, poder utilizar el mismo usuario en varias sesiones (esto ya es para tonterías mías Total, que lo segundo ya sería increíble, pero es que por defecto, con cualquier Windows, lo primero es imposible, al conectarte con el Escritorio Remoto a una máquina, automáticamente desconecta al que estuviese en consola, en mi caso la sesión por defecto del HTPC, que además queda bloqueada al desconectarte tú, con lo cual no solucionamos nada. La solución pasa por crackear la librería del servidor de Escritorio Remoto, así se hacía en XP y así se sigue haciendo en Windows 7, incríble pero cierto. Encontré por ahí el parche para las últimas versiones de Windows7, pero la pega es que estaba preparado para el idioma inglés, con lo que al intentar dar permisos al grupo “Administrators” o parar el servicio “Remote desktop” devolvía error. He cambiado un poco el script para que funcione con las versiones en español. Podéis descargarlo aquí. El funcionamiento es muy sencillo, se descomprime el fichero y se ejecuta el archivo install.cmd con privilegios de administrador. Para logarlo ya sabéis, botón derecho sobre el mismo y “Ejecutar como administrador”. Si todo va bien cambiará la dll correspondiente por la parcheada y reiniciará el servicio de Escritorio Remoto con las opciones por defecto, es decir, permitir múltiples usuarios simultáneos. Si queremos permitir varias sesiones del mismo usuario, habrá que hacerlo de otro modo. Inicio->Todos los programas->Accesorios->Símbolo del sistema Ejecutado también cómo administrador, el mismo sistema, con el botón derecho. Una vez ahí nos desplazamos a la carpeta donde descomprimimos el parche y ejecutamos: Con esto habilitaremos la multisesión de un mismo usuario. Si ahora probamos a conectarnos desde otro ordenador con otro usuario (o el mismo si hemos activado la multisesión) tendremos las dos sesiones activas. Ya puedo puedo utilizar mi HTPC para algo más útil » Leer más, comentarios, etc... Febrero 2nd, 2010 - [Enlace local] El día de hoy se anunció en Adobe Labs, AIR 2 beta 2. Es importante darle un vistazo puesto que las aplicaciones compiladas con beta 1 ya no podrán ejecutarse con el runtime de AIR 2 beta 2, así mismo hay algunas características importantes en esta versión entre las que destacan… También hay algunas aplicaciones de ejemplo que podemos ir descargando para revisar a detalle estas características., por lo tanto, será mejor que cambiemos todas las etiquetas que aparecen dentro de .
y el nombre de la categoría dentro de una
. En las páginas de los productos, debemos poner el nombre del producto dentro de una .
2.3. Limpiar nuestro código
2.4. La velocidad como objetivo
mod_rewrite esté activado y que nuestro servidor soporte archivos .htaccess. En caso que utilicemos URLs Canónicas en Magento junto con las extensión Fooman Speedster, deberemos reemplazar el módulo de URLs Canónicas por esta otra versión.3. SEO Avanzado en Magento y el Contenido Duplicado
3.1. Noindex, Follow para páginas sin contenido
3.2. Nofollow, para enlaces innecesarios o sin relevancia
3.3. URLs Canónicas
3.4. Sitemaps en XML
Sitemap: /sitemap.xml
Conclusión
Entradas relacionadas
Picando Código
Nuevo blog sobre Navegadores Web
Picando Código
Enlaces sobre Scrum
Picando Código
Entregadas las primeras 5.000 firmas en contra del DRM en el iPad a Steve Jobs
avemundi, blog de un micro-isv » Desarrollo de software
enlaces 05.febrero.2010
Picando Código
Debian: mount.nfs: Operation not permitted
mount.nfs: Operation not permitted
fernando@dagobah~/ $ mount -v server01
mount.nfs: timeout set for Fri Feb 5 10:56:10 2010
mount.nfs: trying text-based options 'intr,addr=192.168.1.10,vers=4,clientaddr=192.168.1.163'
mount.nfs: mount(2): Operation not permitted
mount.nfs: Operation not permitted
root@dagobah:~# emacs /etc/fstab
*.*.*.*:/shared /home/fernando/server01 nfs noauto,user,nfsvers=3,intr 0 0
Variable not found
Por sorpresa… ASP.NET MVC 2 RC 2
Hace unas horas Phil Haack ha anunciado la publicación de la penúltima revisión del framework MVC 2 antes de la versión final.
Según se recoge en el documento de notas de la revisión, la única característica añadida ha sido el cambio en la forma de validar las entidades del Modelo. En versiones anteriores, durante el binding se evaluaban las restricciones establecidas en las propiedades cuyos valores eran recibidos por el servidor, mientras que ahora se valida la entidad completa.
También, aunque de menor calado, han sido introducidos otras mejoras interesantes, como el nuevo método Peek() del diccionario TempData, el incremento del rendimiento en varios puntos, o una nueva forma de indicar parámetros opcionales en las rutas, que son eliminados para no interferir otros datos recibidos en la petición.
Desafortunadamente, aún no podemos probarla con las versiones preliminares de VS2010, y sólo funcionará con la versión 2008 del IDE. :-(
Enlaces:
MadeInFlex
#flex101 SWF más ligeros, bin-release




Arragonán
Video de BDD con easyb
Picando Código
Bruce Eckel – Screencasts First Steps in Flex
Ingenieria de Software / Software Engineering
El ciclo virtuoso de Business Intelligence
MonoCaffe
Monocaffe Connections Manager 0.9
Este widget además permite añadir nuevos "Tips" y compartirlos con el mundo. Aun hay que desarrollar un poco más éste widget, pero es 95% funcional y espero os guste la idea.
Tambien se han resulto algunos fallos y molestias que mis compañeros de trabajo han ido encontrando al utilizar mcm y es que tengo un equipo de beta-testers de elite.
Screenshot!
Descargad desde aquí:
http://launchpad.net/mcm/+download
Variable not found
Eliminar una entrada incorrecta del historial en IE8
Como sabéis, la barra de direcciones de este navegador nos permite escribir la URL de la página que queremos visitar, pero podemos ahorrar mucho tiempo si tecleamos únicamente algunos caracteres contenidos en la misma: Internet Explorer buscará en el historial de sitios visitados y en los favoritos, mostrando aquellos sitios que contengan la cadena buscada.
Por ejemplo, escribiendo “vari”, mi Explorer 8 muestra las siguientes sugerencias:

Sin embargo, si alguna vez introducís una dirección incorrecta, por ejemplo tecleando un carácter de más, u omitiendo alguno, esta URL será añadida al historial, y se mostrará como sugerencia también, efecto bastante incómodo.
En la captura anterior, se puede ver que Internet Explorer ofrece “varialablenotfound.com”, una dirección que tecleé de forma incorrecta tiempo atrás.
Pues mi gran descubrimiento es este: si paseamos el ratón sobre esta sugerencia, o la seleccionamos usando la tecla flecha abajo, aparece a la derecha un icono que nos permite eliminarla, para que no nos moleste más:
La explicación de que no lo haya visto hasta ahora es muy sencilla: al aparecer a la derecha del desplegable queda fuera del foco de atención en ese momento, que está justo en el lado contrario, y especialmente en pantallas con resolución muy ancha.
Por curiosidad he probado a ver si existía algo parecido en Chrome, Firefox y Opera, y ninguno incluye este detalle, que nos viene de perlas a los que somos algo muñones ;-)
Publicado en: Variable not found.
Fetishcode...Thinking in objects
Target blank en commandLink
Arragonán
El código y la presentación del taller
Cerebro en la Sombra » Técnico
Habilitar el escritorio remoto multiusuario y multisesión en Windows7
).
.MadeInFlex
Adobe AIR 2 beta 2
Una nueva API que permite recuperar información adicional de la impresión, como el área a imprimir, los colores y status de actividad. También es posible mandar a imprimir sin mostrar el diálogo de imprimir.






