TrailFire: cadenas de comentarios en Firefox

trailfire.pngTrailFire es una extensión para Firefox que nos permite añadir comentarios en distintas web, asociarlas a entre sí y crear una lista de comentarios (trail) por la que podemos movernos y acceder a distintas de ellas.
Por ejemplo, nosotros nos hemos creado un trail del blogroll de Sentido Web, cuando un usuario de TrailFire entre en Sentido Web o en cualquier otra página de nuestro blogroll, le aparecerá un pequeño icono en el que se indicará nuestro comentario y existirá la posibilidad de navegar por nuestro trail.
trailfire2.png
Además, se pueden enviar los comentarios a otras personas por correo, y cambiar el aspecto del “bocadillo” que se mostrará con nuestros comentarios.
Como punto negativo diría que cuando creas un comentario, tienes que esperar a que se te cargue la página, crear el comentario y seguir con lo que estabas haciendo, porque si cambias de pestaña en Firefox se hace un poco de lío.
TrailFire
Vía / Firefox Magazine

Dando estilo a los formularios con CSS

Roger Johansson revisa su clásico “styling from controls“, artículo en el que mostraba cómo se ven los estilos CSS aplicados sobre los controles de formularios en diversos navegadores y sistemas operativos.

Demostraba además que intentar que los elementos de formulario se vean igual en todos los navegadores es una tarea imposible.

Roger acaba de publicar una revisión incorporando nuevos navegadores y sistemas operativos y agregando nuevos controles. En total revisa los siguientes controles en 14 combinaciones navegador – sistema operativo:

Una actualización necesaria, un recurso indispensable.

links for 2007-01-10

Iphone llevará Safari como navegador web

Que el iPhone, el produco de la semana, del mes, del año, lleve integrado Safari como navegador web es una buena notica, ya que supone un empujoncito a la web Móvil.
Además, su pantalla de 320px x 480px que se puede poner en horizontal obteniendo un ancho de 480px hará que se pueda leer bastante bien, lo anterior combinado con que no solo es un móvil gsm sino también un dispositivo wi-fi en toda regla, hace que sea un dispositivo muy interesante para leer webs.
http://sentidoweb.com/img/2007/01/iphone-thumb.png

Recursos para testear nuestras webs en móviles

Es cierto que la web móvil aún está por explotar y que el acceso mediante esta tecnología es aún muy escaso. Pero tarde o temprano será una realidad y tendremos que tener en cuenta esta plataforma para hacer nuestros desarrollos.
En 3point7designs nos dan algunos recursos para hacerlo:
Deshabilita las hojas de estilo
Un primera aproximación sería deshabilitar las hojas de estilo en nuestro navegador. En Firefox podemos hacerlo fácilmente con la extensión Web Developer, en Internet Explorer mediante la Web Accesibility Toolbar
Adapta el tamaño de la ventana del navegador
Se puede hacer con las herramientas especificadas en el punto anterior y poner resoluciones como

  • 176 x 208
  • 240 x 160
  • 320 x 240

Usa Ópera
Este navegador tiene una versión para móviles y además en la normal puedes emular un móvil genérico pulsando Mayúsculas + F11
Utiliza emuladores
Hay muchos, algunos interesantes son:

Vía / 3point7designs

Dividir un texto mediante DOM en Javascript

Os voy a pasar un pequeño script que nos dividiría un elemento de texto HTML (TEXT_NODE) en distintas partes. Quizás os pueda resultar un script extraño, pero se puede usar poner en negrita palabras o alguna otra cosa, yo en mi caso ya le he encontrado utilidad un par de veces y ahora estoy usándolo otra vez en algo que os contaré más adelante (espero que dentro de poco tiempo).

Imaginaros que tenemos un elemento HTML que es realmente un nodo de texto (pensad en DOM, no en innerHTML), por ejemplo:

var elem = document.createTextNode('Esto es una prueba');
document.body.appendChild(elem);

Ahora queremos cambiar “es una” por “es una“. Lo que tendríamos que hacer es dividir en texto en tres partes “Esto “, “es una”, ” prueba”, crearemos tres objetos de texto, cada una con cada trozo de texto y luego un elemento STRONG en el que incluiremos el texto del medio. Por último incluimos los elementos nuevos y eliminamos el anterior.

// Obtenemos primera parte de texto
var parte = elem.nodeValue.substring(0,
elem.nodeValue.indexOf("es una"));
// Creamos elemento de texto con contenido "Esto "
var obj = document.createTextNode(parte);
// Insertamos nuevo elemento
elem.parentNode.insertBefore(obj, elem);
// Obtenemos segunda parte de texto
parte = elem.nodeValue.substring(elem.nodeValue.indexOf("es una"), elem.nodeValue.indexOf("es una")+6);
// Creamos elemento de texto con contenido "es una"
obj = document.createTextNode(parte);
// Lo añadimos a un objeto STRONG
var negrita = document.createElement("STRONG");
negrita.appendChild(obj);
// Insertamos nuevo elemento
elem.parentNode.insertBefore(negrita, elem);
// Obtenemos tercera parte de texto
parte = elem.nodeValue.substring(elem.nodeValue.indexOf("es una")+6);
// Creamos elemento de texto con contenido "es una"
obj = document.createTextNode(parte);
// Insertamos nuevo elemento
elem.parentNode.insertBefore(obj, elem);
// Eliminamos elemento anterior
elem.parentNode.removeChild(elem);

10 errores que suelen cometer los programadores de PHP

Algo que nos pasa a los que aprendemos PHP por nuestra cuenta es coger fallos por malas costumbres, otras veces la gente tiene fallos por falta de conocimiento. Aquí os paso resumida una lista de los errores más comunes que se comenten a la hora de programar en PHP.

  • No escapar lo que nos llegar por parámetro: para evitar el cross-site scripting es necesario escapar las posibles entradas HTML que nos lleguen por parámetro. Si al introducir el usuario nos metieran:
    <script>...$lt/script$gt;

    sería necesario escapar las entidades HTML para evitar ataques. Para ello se usaría el siguiente código:

    htmlspecialchars($_GET['username'], ENT_QUOTES)
  • No escapar las entradas de consultas SQL: para evitar SQL-injections es necesario escapar antes el contenido de las entradas que pasamos a nuestras consultas SQL. Por ejemplo, tendríamos que crearnos una función que escapara las comillas simples.
  • Uso incorrecto de las funciones para la cabecera HTTP (header(), session_start() y setcookie()): muchas veces cuando desarrollanos nos encontramos con un mensaje de error que dice que ya se ha mandado la cabecera y que no se puede añadir más información. Esto es debido a que las funciones de cabecera (header(), session_start(), setcookie()) se tienen que usar al principio del script, antes de mandar nada a la salida.
  • No controlar lo que añades mediante require o include: se trata de no comenter el error de incluir un fichero cuya ruta se pasa por parámetro, ya que aunque nosotros seamos quienes pongan ese valor en el parámetro, puede llegar alguien y cambiar la ruta y pasar otro fichero que no sea de fiar.
  • Errores de sintaxis: bueno, aquí el autor del artículo, se ha quedado un tanto agusto. Todo el mundo comete errores de sintaxis cuando programa, ya sea en PHP, C, .NET o cualquier otro lenguaje de programación. Yo si que comentaria un error que suelo cometer, que es el escribir mal una variable y que el script no falle (como ocurriría en Java), pero que se obtengan datos incorrectos.
  • No usar la orientación a objetos: desde la versión 4 los objetos se admiten en PHP, en PHP5 se mejoró su utilización. Debemos aprovecharnos de esas posibilidades.
  • No usar frameworks: no reinventemos la rueda, si ya hay un framework que nos gestiona la base de datos, los errores y otras cosas, no pierdas el tiempo en implementarlo tu mismo.
  • Desconocer funcionalidades: PHP dispone de muchas funcionalidades en su core o en su librerías, cuantas más funcionalidades conozcas, menos tiempo perderas en el desarrollo.
  • Usar versiones antiguas de PHP: tiene dos inconvenientes, que desaprovechas nuevas funcionalidades y corres el peligro de no tener todos los bugs parcheados.
  • Doble escapado de comillas: es posible encontrar en código PHP algo así: \’ o \”. Esto suele ocurrir cuando se desarrolla con magic_quotes off y se instala en un servidor con magic_quotes on.

The PHP coder’s top 10 mistakes and problems

Vía / dzone

|

Webéame: nuevo recurso para desarrollladores web

Imagen%202.pngAcaba de nacer Webéame, un clon de Digg en castellano dirigido a la comunidad de desarrolladores web. Va en la línea de Dzone aunque aún más especializado y dirigido al mundo web.
El diseño es agradable, aunque aún deben estar trabajando en el logotipo, y con interfaz habitual de este tipo de sitios. Creo que esta iniciativa es una gran noticia para la comunidad de desarrolladores hispanos. Enhorabuena a sus creadores.
Webéame
Vía / aNieto2K

links for 2007-01-09

Estándares y publicidad en la web

El código generado por las empresas de publicidad en Internet es, en general, bastante malo y no cumple con los estándares. Esta es la reflexión que hace Jens Meiert con mucho acierto.
Me ha llamado la atención esta idea y simplemente observando un poco el código html que genera Google para insertar su publicidad nos encontramos unas cuantas perlas:

  • Uso de tablas para la presentación totalmente innecesarias
  • Atributos presentacionales en el body como vlink o alink
  • Etiquetas FONT por doquier con sus correspondientes atributos face y color
  • Abuso del document.write en javascript cuando podían usar DOM

Desde muchas instancias se pide a los desarrolladores web que intenten cumplir los estándares, pero las organizaciones que hacen estas campañas de evangelización han dejado de lado a las compañías de publicidad en Internet y no estaría mal que empezasen a insistirles que generen un código más estandar.
Evangelists, focus on standard ad code!