HTML 5

La del tìtulo es una palabra que ultimamente está muy famosa, si no me creen dense una vuelta por twitter o alguna otra red social y se darán cuenta que desde que los navegadores comenzaron a soportar esta nueva versión del lenguaje de etiquetas que da forma a nuestra querida Web, esta misma se revolucionó con todas las nuevas alternativas y las cosas que se podían lograr. Esto unido al hecho de que CSS3 también apareció en acción hace muy poco, hace que las alternativas de crear sitios más complejos pero a la vez con mas alternativas de entregar la información de muchas más maneras, motiva a la gente que está detrás de la creación de estas aplicaciones. Es por este motivo que he decidido repasar la mayor parte de la especificación de la W3C sobre HTML 5, me comprometo a hacerlo con ejemplos que dejen más claro el uso de cada uno de los nuevos elementos y también trataré de introducir un poco de css3 y javascript para que vean algunas de las cosas que se pueden lograr.
Espero mañana tener el primer review

saludos tuto

Encontrar ids repetidos en html

En muchas oportunidades al escribir html nisiquiera podemos ver el resultado final de nuestros trabajos, por ejemplo si trabajas con trozos de html que al final se unen con códigos de otros desarrolladores y muchas veces no tenemos idea de los nombres que les pusieron a los tag html. Esto se complica más aún cuando tenemos que realizar algo con javascript sobre estos elementos que se han creado, por lo tanto, nuestros scripts no funcionarán.
A mí en mi trabajo me ocurre con mucha frecuencia así que escribí un pequeño script en js que te dá un alert con un resumen del estado de ids de tu html, para esto solo linkea esta dirección en tu html y al recargar la página te dará el resultado del análisis.

JavaScript:
  1. <script src="http://www.dakoo.cl/archivos/utilidades/verificador.js" type="text/javascript"></script>

En los próximos días linkearé el source por si quieren verlo

Espero les sirva

saludos tuto

Container para marcas de google maps

Este post es debido a un enojo que tuve una véz. Me gusta mucho la orientación a objetos y estaba utilizando la api de google maps. El problema surgía al momento de tener un container con todos los marcadores que tenía en el mapa( en el cliente claro está) y despues de darme cuenta que lo que se suponía era la solución de google estaba deprecada, decidí ir por mi cuenta y crear una pequeña clase. Es algo super sencillo y que se vale de la clase Hash de Mootools y tiene como único objetivo tener algo más ordenado.
Aquí va el código

LA CLASE

JavaScript:
  1. function containerMarcas(){
  2.  
  3.     this.cont = new Hash();
  4.     this.add = function(key,marca){
  5.    
  6.         this.cont.include(key,marca);
  7.        
  8.     }
  9.     this.rm = function(key){
  10.    
  11.         this.cont.erase(key);
  12.        
  13.     }
  14.     this.getLen = function(){
  15.    
  16.         return this.cont.getLength();
  17.    
  18.     }
  19.     this.setNombreMarca = function(key,nombre){
  20.    
  21.         var mar = this.cont.get(key);
  22.          mar.setNombre(nombre);
  23.         this.cont.set(key,mar)
  24.     }
  25.     this.setDescripcionMarca = function(key,des){
  26.    
  27.         var mar = this.cont.get(key);
  28.          mar.setDescripcion(des);
  29.         this.cont.set(key,mar)
  30.     }   
  31.  
  32. }

Un ejemplo de uso

JavaScript:
  1. var container = new containerMarcas();
  2. container.add(k,m);

Comparacion de String con Javascript

Una de las cosas raras que me ha pasado con js fue una comparación de string.

Para los que han programado en otros lenguajes mas o menos  "modernos" saben que uno puede saber si un string es mayor que otro solo colocando la expresion "string1 > strin2" o "string1 < string2", esto en sí debería devolver 1 o 0 dependiendo de los strings ingresados. Yo pensaba que esta "regla" también se respetaba para js, GRAN ERROR SEÑOR, osea, no es TAN error, porque como siempre hay excepciones a la regla.

En firefox me funcionaba, en chrome y en ie6 no.

Ahora la solución.

Cachureando por ahi y por alla, recordando funciones de otros lenguajes(java más especificamente)  llegue a una página en la que implementó la función "compareTo", la cuál por ejemplo en java existe. Lo que hace esto es comparar caracter por caracter el unicode de cada uno y entregando el resultado. Con esto se dejan de lado los errores (que pienso que es donde se marean los navegadores) que se pueden producir por caracteres extraños, acentos por ejemplo, mayúsculas u otra cosa.

Vamos al código

JavaScript:
  1. function compareTo( s )
  2. {
  3.   var len1 = this.length;
  4.   var len2 = s.length;
  5.   var n = ( len1 <len2 ? len1 : len2 );
  6.  
  7.   for( i = 0 ; i <n ; i++ )
  8.   {
  9.     var a = this.charCodeAt( i );
  10.     var b = s.charCodeAt( i )
  11.     if( a != b )
  12.     {
  13.       return( a - b );
  14.     }
  15.   } 
  16.   return( len1 - len2 );
  17. }
  18. String.prototype.compareTo = compareTo;

Lindo no :D

Cualquier duda o sugerencia no dudes en comentar

Saludos tuto

En Defensa de los Derechos Fundamentales en Internet

Este post es por que una cosa parecida están tratando de realizar en Chile, por suerte hasta el momento no han podido.

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que:

  • Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.
  • La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.
  • La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.
  • La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.
  • Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.
  • Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.
  • Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.
  • Exigimos que el Gobierno garantice por ley la neutralidad de la Red, en España ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.
  • Proponemos una verdadera reforma del derecho de propiedad intelectualorientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.
  • En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Se ha publicado en multitud de sitios web. Si estás de acuerdo y quieres sumarte a él, difúndelo por Internet.