Noticias Weblogs Foros Wiki Código

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

Picando Código

Afiches minimalistas de la galaxia de Star Wars

Febrero 8th, 2010 - [Enlace local]

Dagobah

Dagobah

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.

Hoth

Hoth

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í.



Tim Bryce

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í.





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



[...]



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.



Eugene Spafford

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".



Aloysius Alzheimer

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 vez
Efectivamente, 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.



Roy Amara

24. Ley de Amara

Tendemos a sobreestimar el efecto de la tecnología en el corto plazo y a subestimarla a largo plazo
Esta 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.



Barbara Liskov

26. Principio de Liskov

Los subtipos deben ser sustituibles por sus clases bases
O 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.



Hick no se dejó hacer la foto ;-)

25. Ley de Hick

El tiempo que se tarda en tomar una decisión aumenta a medida que se incrementa el número de alternativas
Puede 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



Robert A. Heinlein, uno de los posibles padres del principio de Hanlon

27. Principio de Hanlon

Nunca le atribuya a la maldad lo que puede ser explicado por la estupidez
A 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.



Bill Joy

28. Ley de Joy

El número de empleados inteligentes en una empresa es una función logarítmica del número de empleados totales
Tambié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.



Tim Lister

29. Ley de Lister

La gente bajo presión no piensa más rápido
Bonita 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.







William of Ockham

30. La navaja de Occam

En igualdad de condiciones la solución más sencilla es probablemente la correcta
En 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:



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.



Linus Torvalds

11. Ley de Linus

Dados suficientes ojos, todos los errores son obvios
Pues 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.



David P. Reed

12. Ley de Reed

La utilidad de grandes redes, y en particular las sociales, crecen exponencialmente con el tamaño de la red
David 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.



Gordon Earl Moore

13. Ley de Moore

La potencia de los ordenadores se duplica cada dos años, reduciendo además su coste
Repetida 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.



Niklaus Wirth

14. Ley de Wirth

El software se ralentiza más deprisa de lo que se acelera el hardware
Brillante 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



Jamie Zawinski

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 capacidad
Lo 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 ;-)



Sir Arthur C. Clarke

16. Las tres Leyes de Clarke

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.
El conocido científico y escritor británico Sir Arthur Charles Clarke enunció estas tres leyes porque, según comentaba, "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.



Scott AdamsDilbert

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 provocar
Este 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.



George Gilder

18. Ley de Gilder

El ancho de banda aumenta a un ritmo tres veces superior a la potencia de los ordenadores
Pues 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).



Gene Amdahl

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.



Nathan Myhrvold

20. Ley de Myhrvold

El software es un gas; se expande hasta rellenar su contenedor
Claro, 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.



John Postel

1. Ley de Postel

Sé conservador en lo que hagas y liberal en lo que aceptes de los demás
Esta 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.



C. Northcote Parkinson

2. Ley de Parkinson

El trabajo se extiende siempre hasta rellenar la totalidad del tiempo disponible para completarlo
Esta 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.





Vilfredo Pareto

3. Principio de Pareto

Para muchos fenómenos, el 80% de las consecuencias derivan del 20% de las causas
Vilfredo 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.







Ted Sturgeon

4. Revelación de Sturgeon

El noventa por ciento de cualquier cosa es basura
Theodore 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".



Lawrence J. Peter

5. El principio de Peter

En una jerarquía, todo individuo tiende a subir hasta alcanzar su nivel de incompetencia
Seguro 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.



Douglas Hofstadter

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 Hofstadter
Esta 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?





Edward A. Murphy

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.



Frederick Brooks

8. Ley de Brooks

Incluir trabajadores en un proyecto retrasado hará que éste avance aún más lentamente
Fred Brooks postuló esta ley en su famoso libro The Mythical Man-Month: Essays on Software Engineering como resultado de su experiencia en IBM. Existen variantes y corolarios como "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.



No se dejó hacer la foto ;-) Este es uno de los diagramas usados en el paper 'How Do Committees Invent?' donde presentaba sus ideas

9. Ley de Conway

Cualquier software refleja la estructura organizacional de quien lo produjo
A 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



Auguste Kerckhoffs

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ón
Es 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]

Seminario para desarrolladores de MagentoEl 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:

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]

SEO MagentoDesde 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

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:

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:

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:

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:

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:

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

, por lo tanto, será mejor que cambiemos todas las etiquetas

que aparecen dentro de
> por etiquetas .

Ahora pasaremos a optimizar nuestro contenido. En las páginas de las categorías pondremos los nombres de los productos dentro de etiquetas

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

.

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.

2.3. Limpiar nuestro código

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.

2.4. La velocidad como objetivo

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:

  1. Activar el almacenamiento en caché. Activaremos esta opción desde Sistema -> Gestor de la caché, marcando todas las opciones de almacenamiento en caché
  2. La importancia de un buen alojamiento y de una buena configuración del servidor. Con MySQL y una herramienta opcode caché de PHP (APC, eAccelerator, XCache), podemos conseguir una mejora drástica en la velocidad de 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 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

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:

  • http://www.mitiendamagento.com/producto.html
  • http://www.mitiendamagento.com/categoria/producto.html
  • http://www.mitiendamagento.com/categoria/product/view/id/1/
  • http://www.mitiendamagento.com/catalog/product/view/id/1/category/1/

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.

3.1. Noindex, Follow para páginas sin contenido

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.

3.2. Nofollow, para enlaces innecesarios o sin relevancia

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.

3.3. URLs Canónicas

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).

3.4. Sitemaps en XML

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:

  • Utilizar las herramientas para webmasters de algunos buscadores como: Google Webmaster tools, Yahoo! Site Explorer, Bing Webmaster Center…
  • Indicar la ruta del Sitemap en el archivo robots.txt

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:

Sitemap: /sitemap.xml

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.

Conclusión

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.

Entradas relacionadas

» Leer más, comentarios, etc...

Picando Código

Nuevo blog sobre Navegadores Web

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...

Picando Código

Enlaces sobre Scrum

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...

Picando Código

Entregadas las primeras 5.000 firmas en contra del DRM en el iPad a Steve Jobs

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.

Petición iPad

Petición iPad

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:

iPad CloseUp

iPad CloseUp

» Leer más, comentarios, etc...

avemundi, blog de un micro-isv » Desarrollo de software

enlaces 05.febrero.2010

Febrero 5th, 2010 - [Enlace local]

Un par de enlaces sobre Java:

  • El traje nuevo del emperador un post al que llegué via Javahispano donde el autor cuenta sus impresiones de la adquisición de Sun por parte de Oracle tras el webcast de esta donde explicaban su estrategia a seguir tras la adquisición. En Javahispano también se ha escrito sobre esta webcast pero en tono mas neutro.
  • El blog de Jonathan Giles es un sitio que publica semanalmente enlaces a post relacionados con Swing y JavaFx principalmente. Muy interesante para ir viendo lo que se mueve en estas dos partes integrantes del entorno Java.

» Leer más, comentarios, etc...

Picando Código

Debian: mount.nfs: Operation not permitted

Febrero 5th, 2010 - [Enlace local]

Debian GNU/Linux

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:

mount.nfs: Operation not permitted

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:

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

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:

root@dagobah:~# emacs /etc/fstab
*.*.*.*:/shared        /home/fernando/server01     nfs     noauto,user,nfsvers=3,intr  0 0

Con esto quedó funcionando correctamente.

» Leer más, comentarios, etc...

Variable not found

Por sorpresa… ASP.NET MVC 2 RC 2

Febrero 5th, 2010 - [Enlace local]

ASP.NET MVC 2 RC 2Hace 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:

Publicado en: Variable not found.



» Leer más, comentarios, etc...

MadeInFlex

#flex101 SWF más ligeros, bin-release

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.

Proyecto Flex

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.

Export Release Build

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.

Debug Version

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.

Debug Version

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...

Arragonán

Video de BDD con easyb

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 :P

» Leer más, comentarios, etc...

Picando Código

Bruce Eckel – Screencasts First Steps in Flex

Febrero 4th, 2010 - [Enlace local]

Screencasts Flex

Screencasts Flex

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...

Ingenieria de Software / Software Engineering

El ciclo virtuoso de Business Intelligence

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...

MonoCaffe

Monocaffe Connections Manager 0.9

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.





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

» Leer más, comentarios, etc...

Variable not found

Eliminar una entrada incorrecta del historial en IE8

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.



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:



IE8 sugiriendo sitios que contienen el texto "vari"

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:



Icono para eliminar la entrada de las sugerencias

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.



» Leer más, comentarios, etc...

Fetishcode...Thinking in objects

Target blank en commandLink

Febrero 3rd, 2010 - [Enlace local]

A

» Leer más, comentarios, etc...

Arragonán

El código y la presentación del taller

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:

  • Montar más talleres/charlas de temática técnica para aprender unos de otros, vernos las caras… y seguro que todo el mundo puede aportar algo o hablar sobre un tema.
  • Retomar las quedadas del ZaragozaJUG, aproximadamente una vez al mes. Y aunque tenga el nombre de Java User Group, jamás se ha hablado exclusivamente de Java o programación; es simplemente una reunión de gente del gremio(sin importancia del lenguaje) para charlar sobre lo que surja alrededor de unas cervezas, y obviamente alguna vez toca hablar de temas relacionados con el desarrollo de software :)

» Leer más, comentarios, etc...

Cerebro en la Sombra » Técnico

Habilitar el escritorio remoto multiusuario y multisesión en Windows7

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 :P ).

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:

  1. install.cmd multi

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...

MadeInFlex

Adobe AIR 2 beta 2

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…

  • Interacción Mejorada con la Impresora: Nuevo soporte de impresión que permite un control más fino sobre la manera en que el contenido se imprime desde una aplicación AIR, incluyendo la elección de impresora, tamaño del papel y número de copias.
    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.
  • Soporte para comunicación de sockets TLS/SSL: Ahora es posible conectarse a un servidor que requiere comunicaciones por socket tipo TLSv1 o SSLv3.
  • API IME y Mejoras en la Entrada de Texto: Interesantes mejoras para soportar la entrada de texto con software IME mediante un API diseñada para utilizar el Flash Text Engine.

También hay algunas aplicaciones de ejemplo que podemos ir descargando para revisar a detalle estas características.

» Leer más, comentarios, etc...