7 reglas para realizar Javascript de calidad

junio 19, 2009

Siete consejos para realizar un javascript de calidad y no intrusivo:

  • No hagas suposiciones: no pienses que el usuario tendrá el javascript activado o que usará un navegador adecuado.
  • Usa IDs y relaciones entre elementos: para no depender de un HTML mal estructurado y que el javascript sea imposible de realizar, utiliza IDs para acceder a los elementos con los que se quiere tratar y busca elementos que faciliten acceder a otros elementos.
  • Utiliza estilos: en vez de modificar los estilos de los elementos HTML mediante Javascript, usa clases CSS que modifiquen los estilos, y mediante Javascript se le puede añadir la clase a un elemento superior.
  • Comprende el navegador y a los usuarios: debes pensar cómo funciona un navegador, no sobre saturar su comportamiento (abuso de drag&drop, eventos, …). Además debes pensar qué espera el usuario que haga el navegador, y respetarlo.
  • Comprende los eventos: los eventos no solo corresponden a un objeto, sino a los elementros hijo que contiene. Así se pueden realizar eventos sobr un único elemento y no tener que modificar los demás.
  • Respeta el código de otros: seguro que a parte de tu código existe algún otro que has añadido, por lo que deberás programar teniendo en cuenta que hay que evitar conflicto entre funciones.
  • Después de ti vendrá otro: es muy frecuente que alguien acabe modificando tu código, ten un poco de consideración por los demás y escribe código legible y entendible.

The seven rules of Unobtrusive JavaScript

Vía / @dcedilotte


Crear aplicaciones Facebook con CodeIgniter

junio 8, 2009

No me apasiona especialmente realizar aplicaciones para Facebook, pero cuando no te queda otra, es mejor no complicarse la existencia y usar un buen framework como CodeIgniter (claro, que algunas aplicaciones si se realizan sin más tampoco pasa nada).

Para aquellos que quieran realizar aplicaciones en Facebook usando CodeIgniter le puede venir bien estas dos guías y dos librerías. Tanto las guías hablan de lo mismo, y las librerías son para Facebook-Connect (pero en una de ellas la explican paso a paso).

De forma resumida podríamos decir que para integrar Facebook en CodeIgniter debemos usar la librería facebook.php como un plugin de CI.

Fuente: http://sentidoweb.com/2009/06/08/crear-aplicaciones-facebook-con-codeigniter.php


Guía para desarrollar Javascript accesible

junio 8, 2009

Interesante tutorial que nos enseña que problemas pueden encontrarse las personas con alguna discapacidad que le obligue a prescindir de Javascript (o usuarios con dispositivos móviles), y cómo solucionarlo.

Los mayores problemas con el que se encuentran las personas que no ejecutan javascript en sus navegadores son en la navegación (menús dinámicos), contenido oculto (accesible mediante Ajax), controles dinámicos (eventos de ratón, drag&drop, …) y confusión (la web está pensada para el uso de Javascript y no usarlo conlleva un contenido inicial deficiente).

Como resumen diría que hay que ofrecer los contenidos sin necesidad de javascript, éste sólo debe ser un apoyo, y que para comprobar si tu web es accesible lo mejor es probarlo inhabilitando el javascript en tu navegador.

Creating Accessible JavaScript

Vía / @maxkuri

Fuente: http://sentidoweb.com/2009/06/04/guia-para-desarrollar-javascript-accesible.php


¿C++ y Java casi muertos?

mayo 11, 2009

FonolaMe gustaría hablar de los legados que nos han dejado C++ y Java. Se menciona muchas veces errores en el diseño de ambos, aunque si hacemos una retrospectiva en forma positiva podemos concluir que los dos lenguajes tuvieron  un papel importante en la evolución de los lenguajes de programación y nos han dejado un legado importante y positivo.

Entonces, ¿no será muy temprano para hablar de sus legados? ¿O quizás pensamos que estos lenguajes están ya en su período de decadencia?

C++

Eckel, un miembro formado de C++ Standadrs Committee recordó la decisión tomada en relación a la compatibilidad con versiones anteriores del lenguaje con C desde el comienzo:

Para comprender porqué el lenguaje puede ser desagradable y complicado, y a la vez contar con un buen diseño, es necesario tener en cuenta la primer decisión de diseño que afecta a todo en C++: compatibilidad con C. Stroustrup deció -y al parecer de forma correcta- que la forma  de hacer que la gran masa de programadores de C cambien a objetos era hacer que eso fuese transparente: permitir que ellos pudiesen compilar sus códigos en C sin tener que cambiarlos para C++.

Mientras que C++ ha tenido éxito en atraer a la mayoría de los desarrolladores de C a C++, la decisión sobre la compatibilidad tiene un severo impacto negativo en la evolución del lenguaje:

Lla compatibilidad con C fue una gran limitación, y siempre ha sido la mayor fuerza de C++ … y su perdición. Eso es lo que ha hecho que C++ fuera un éxito y eso es lo que hizo que fuese complejo de la forma que lo es.

Por ejemplo, reconoce que el operador de sobrecarga es difícil de utilizar en C++:

Quienes no entienden C++ muy bien piensan que la sobrecarga de operadores es muy difícil para que los desarrolladores la usen de forma adecuada. Lo qué es básicamente cierto en C++, porque C++ tiene ambas: reserva de pila y reserva de heap, precisamos sobrecargar los operadores para poder manejar todas las situaciones y no causar pérdidas de memoria. De hecho, eso es difícil.

Por supuesto, estas declaraciones generan un debate. Archilleas Margaritis no cree que la compatibilidad con C sea un problema:

No creo que C++ no tenga un buen diseño debido a la compatibilidad con C. ADA es compatible con C, y es un lenguaje muy bueno, con un fuerte liderazgo de su concepción de ingeniería.

Lo que está mal en C++ es el nivel de compatibilidad de código fuente con C. Para que fuese posible incluir las cabeceras de C, C++ mantiene el sistema preprocesador de C. Esto llevó a una gramática extraña y sin contexto, lo que llevó a una sintaxis extraña que se tiene que mantener compatible con C.

Michele Costabirle considera que una de las fallas de C++ fue la falta de una librería normalizada desde el principio:

Creo que una pesada carga de C++ es la falta de una librería normalizada.

Si recuerdo bien, Stroustroup escribió en “El Diseño y la Evolución de C++”, que dejó de lado una librería normalizada en favor de la herencia múltiple. Creo que hubiera sido más ventajoso de la otra manera.

Se pueden decir muchas cosas respecto a C++, pero una cosa es cierta: C++ llevó a los programadores a subir un más alto en la escalera de la programación.

Java

Hablando de un lenguaje diferente en el mismo tono, Eckel reitera algunos errores de diseño cometidos en Java:

Durante muchos años, la línea del equipo de Java fue “la sobrecarga de operadores es algo demasiado complicado”. Esta y muchas otras decisiones muetran claramente que alguien no hizo la tarea en su casa, y es el motivo por el cual tengo la reputación de criticar muchas decisiones tomadas por Gosling y el equipo de Java. …

Los tipos primitivos “tienen que ser incluidos por eficiencia.” La respuesta correcta sería la de permanecer fiel a “Todo es un objeto” y proporcionar algún truco para realizar actividades de bajo nivel cuando hay una necesidad de eficiencia (lo que es cierto para tecnologías hotspot, que hacen las cosas más eficientes de una manera transparente, como evetuamente ocurriría) . Ah, y de paso no vayamos a utilizar el procesamiento de puntos flotantes directamente para calcular funciones transcedentales (en cambio, eso se hace en el software). …

Cuando escribí acerca de qué tan malo se hizo el diseño de los generics, obtuve la misma respuesta, junto con “tenemos que tener compatibilidad con las (demás) decisiones tomadas en Java anteriormente.” Últimamente cada vez más personas han adquirido experiencia con generics para ver cómo es realmente difícil de utilizar.

Bill Venners recuerda las cosas de manera diferente:

No estoy seguro de cuando me dio la impresión de que la elección de dejar la sobrecarga de operadores de lado fue hecha porque alguien no hizo la tarea en casa. Recuerdo preguntar a Gosling en una de mis entrevistas con él porque estaba dejando la sobrecarga de operadores de lado (no creo que esta pregunta y respuesta acabaran siendo publicada). Lo que él básicamente dijo fue lo mismo que le oí decir en otros contextos: Gosling consideró que el nivel de abuso de la sobrecarga de operadores que él vio en la práctica en otros lenguajes (no estoy seguro de si se estaba refiriendo sólo a C++ pero sin duda incluía a C++) había anulado los beneficios de la misma. Eso es todo. Fue una elección subjetiva de diseño.

James Watson favorece las limitaciones deliberadamente introducidas en Java:

Lo que hizo a Java un lenguaje de fácil adopción fue su simplicidad. Sí, en cualquier lenguaje podemos escribir código que es imposible de mantener, pero tendremos que trabajar duro para hacerlo en Java. Esto es porque no se ofrecen una serie de recursos fáciles de abusar, que otros lenguajes si ofrecen.

Desde una perspectiva individual, esto es terrible. Si no quiero utilizar una funcionalidad no la uso. ¿Quién es Sun para decirme lo que debo o no debo hacer? Pero cuando se considera a todo un grupo de desarrolladores que tienen ideas diferentes spbre lo que es un buen enfoque, el juego cambia. El tener un número limitado de formas de hacer las cosas comienza entonces a tener sentido.

Noel Grandin dijo lo suyo, ampliando aún más el debate incluyendo a nuevos lenguajes:

La mayoría de los otros lenguajes atrayentes como Ruby y Scala nunca serán los principales, y es proque están todos fuertemente sesgados en favor de escribir código, en lugar de leer código.

Java es correctamente equilibrado – Java puede ser expresivo y no tener una serie de funcionalidades legadas, y es muy fácil de averiguar lo que algún código aleatorio está haciendo.

Al final, Eckel habló sobre el legado de Java:

Java acercó el mundo del garbage collection a la mayoría de los desarrolladores, también a las máquinas virtuales y un modelo consistente de manipulación de errores (especialmente, si dejamos de lado las checked exceptions, que es una que puede ser utilizada como he mostrado en Pensando en Java, 4e) . Con todas sus fallas, Java nos elevó a un nivel superior, hasta al punto donde estamos ahora, y listos para lenguajes de niveles más altos.

El factor más positivo es preparar el camino para los lenguajes del futuro:

En cierto modo, C++ fue el lenguaje principal y las personas pensaron que siempre sería así. Muchos pensaron lo mismo respecto de Java, pero Java hizo tadavía más fácil sustituirse a sí mismo, a causa de la JVM. Ahora es posible que cualquiera cree nuevos lenguajes y los ejecute con tanta eficiencia como Java. … …

Y estamos viendo ocurrir esto – con lenguajes de alto nivel como Scala, y con lenguajes dinámicos como Groovy, JRuby y Jython. … …

El beneficio no es intencional, el verdadera brillo o genialidad accidental de Java es que fue creando un camino para su propia sustitución, aunque el propio Java haya alcanzado un punto donde ya no pueda evolucionar. Todos los lenguajes del futuro tienen que aprender de eso: crear una cultura en la que pueda haber refactorización (como Python y Ruby han hecho) o permitir el crecimiento de especies competitivas.

Conclusión

Java encendió muchas controversias cuando apareció, especialmente entre los desarrolladores de C++ y los nuevos desarrolladores de Java. Las voces se han calmado desde entonces, y ahora podemos ver claramente dónde estamos y cuál es el legado dejado por los dos lenguajes.

¿O quizás todavía es demasiado pronto para hablar de su legado? Hablar de “legado” suena como si fuesen lenguajes muertos o lenguajes que están muriendo. ¿Es así? ¿Qué lenguajes evolucionará para reemplazar a C++ y Java? (las opiniones son siempre bienvenidas).

Fuente:http://www.dosideas.com/reflexiones/560-ic-y-java-casi-muertos.html


Sun anuncia MySQL 5.4

abril 23, 2009

Las cosas están cambiando rápidamente en la base de datos MySQL. El martes, al inicio de la MySQL Conference & Expo, Sun anunciaba nuevos planes de liberación. La primera preview de MySQL 5.4 está disponible desde hoy, y aseguran que es un 90 por ciento más rápida que MySQL 5.1 para determinados tipos de consulta. Aunque todavía es pronto, el jefe ejecutivo de MySQL es optimista y cree que Oracle verá el valor de MySQL y les permitirá continuar su desarrollo sin problemas.”MySQL es tan omnipresente que su propiedad es irrelevante”, dijo Karen Tegan Padir, vicepresidente de infraestructura de software en Sun.
Fuente: barrapunto.com


¿Conoces Spotify?

marzo 6, 2009

Mucho se está habalando en la red de Spotify, un programa con el que puedes escuchar practicamente toda la música que quieras a través de internet.

Pero lo cierto es que hasta que no lo pruebas no te das cuenta de que se trata de uno de los programas mejor pensados y mejor diseñados de los últimos tiempos.

Y es que Spotify, además de ofrecer un amplísimo catálogo de música de casi cualquier género, época o idioma (todo el catálogo de Sony BMG, EMI, Universal, Warner Music y muchas mas) funciona realmente bien eliminando los inconvenientes tipicos de este tipo de programas.

El funcionamiento de Spotify es realmente fluído. La frase que mas suele repetir la gente que lo ha probado es “parece que tengas la música en el disco duro de tu ordenador de lo rápido que va todo”.

Puedes hacer practicamente lo mismo que con cualquier programa para escuchar música: buscar, reproducir, pausar, pasar hacia adelante o atrás, crear listas de reproducción… pero con la ventaja de disponer de una biblioteca musical mucho mas amplia que la que puedas tener en tu ordenador y sin ocupar el espacio que ocuparía esta.

¿Y si te digo que esta maravilla es gratuita?. Pues lo es. La versión gratuita (también la hay de pago) incluye publicidad de vez en cuando pero esta es muy espaciada y no molesta demasiado.

Sin duda uno de esos programas que demuestran que en un futuro no muy lejano no necesitaremos tener nada almacenado en nuestro ordenador sino que podremos acceder directamente a todo y practicamente al instante a través de internet.

Merece la pena probarlo. Sólo has de darte de alta y descargar el programa para lo cual aquí os dejo los enlaces necesarios:

Darse de alta

Descargar Spotify

Fuente: elblogdelswitcher.blogspot.com

Facebook cambia su página de inicio

marzo 6, 2009

Incorporará una columna con la información relativa a los contactos más cercanos del usuario y permitirá crear a filtros mediante las listas de amigos

Madrid. (EUROPA PRESS).- En Facebook continúan decididos a seguir creciendo vertiginosamente en todo el mundo y por eso preparan cambios en su página de inicio. Con el nuevo diseño de la web principal de cada perfil de esta popular red social será posible acceder a nuevas funciones. A falta de fecha concreta, se espera que llegue “muy pronto”.

La principal novedad de la nueva página de inicio de Facebook llegará con la incorporación de una columna izquierda. En ella aparecerá toda la información relativa a los contactos más cercanos del usuario, que podrá crear a filtros mediante las listas de amigos. Además, podrá acceder de forma más rápida -sin necesidad de pinchar en su perfil- a las aplicaciones, como ‘Fotos’.

La columna central de la red social también sufrirá algunas modiciaciones, aunque serán más sutiles. Seguirá siendo posible ver en tiempo real todo lo que los contactos decidan compartir, pero será el usuario el que controle quién aparece y quién no. Además, el ‘Editor’, que actualmente permite comprartir un estado de ánimo, incorporará novedades que ya aparecen en el perfil del usuario, como accesos directos a links, fotos o vídeos.

En la columna derecha seguirán apareciendo los eventos presentes y futuros más destacados, las invitaciones, las notas y todos los contenidos en general a los que tiene acceso el usuario. Además, ahora Facebook promete una mayor personalización automática que se adaptará a las necesidades del usuario, “en función de las interacciones de tus amigos”.

Por el momento, el nuevo aspecto de la página de inicio de la red social creada por Mark Zuckerberg aún no tiene fecha de lanzamiento concreta. Sin embargo, Facebook ya anuncia el cambio a los usuarios cuando éstos inician sesión y permite echar un vistazo a una pantalla de cómo será el resultado. En el mensaje insertado se avanza que el lavado de cara llegará “muy pronto”.

Facebook es el portal de su tipo más popular del mundo y el que creció a mayor ritmo en nuestro país en 2008. La última cifra de usuarios que facilitaron es nada menos que 175 millones en todo el mundo. Sin embargo, en España sigue siendo teniendo más presencia la red social patria Tuenti.

Fuente: elhacker.net