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!

Videotutorial para hacer un backup de tu WordPress

wp.pngHacer una copia de seguridad de tu blog es algo totalemente necesario y que no podemos dejar de hacer. Si piensas que la posibilidad de que pierdas los datos de tu blog son mínimas, quizás no te has dado cuenta de que tienes en cuenta que puede ocurrir, por lo que mejor hacer un backup de tu blog de vez en cuando.
Para ello nada mejor que el plugin WordPress database backup, el cual viene instalado por defecto a partir de WordPress 2.0. Aunque su instalación y uso es sencillo, puedes encontrarte con algún problema (permiso de escritura del plugin), y si aún su sencillez necesitas una ayuda, os paso un videotutorial en el que lo explican paso a paso.
Por cierto, recomiendo la página donde ofrecen este tutorial, al tener algunos interesantes (aunque quizás de nivel un poco bajo).
Back Up Your Blog or Risk Losing It All
Vía / Lifehacker

Mod_security: ‘enjaula’ tu Apache

Algo que nos debería preocupar bastante es la seguridad de nuestro servidor web. “Enjaular” se refiere a meter a Apache en un entorno propio para que cuando suframos un ataque solo a ese entorno y no a nuestro sistema entero.
Para ello, se puede hacer mediante mod_security y la gente de Apache-ES nos explica muy bien cómo instalarlo para Linux y cómo hacerlo para que funcione bajo Windows ya que en Windows mod_security no funciona correctamente.
Apache mod-security (PDF)
Vía / Apache-ES

| |

Endless.com: Experimento de Amazon en comercio electrónico

endless_logo.pngEndless es una nueva tienda de Amazon, dedicada a la venta de zapatos y bolsos, en la que destaca una interfaz de usuario rica y novedosa a base de DHTML y AJAX.
El sitio merece una exploración en profunidad pero un primer recorrido ya nos permite ver detalles alentadores:

  • Explorador visual de los artículo con zoom
  • Filtros de productos por marcas, color, tamaño o precio mediante AJAX (espectacular el de precios)
  • Paginación AJAX

http://sentidoweb.com/img/2007/01/endless_cap_2-thumb.png
Una interfaz de usuario realmente lograda, ejemplo de lo que la web 2.0 está consiguiendo y posiblemente una referencia en patrones de diseño en comercio electrónico.
Una pequeña crítica: se echa de menos un poco de enfoque social; al menos comentarios sobre los productos.