May 24
Programación Firefox, uno de los navegadores más empleados en la actualidad y el más importante de las alternativas "open source" acaba de anunciar la salida de la primera "release candidate".

Este navegador podría ser el primero en desbancar a internet explorer como navegador más empleado.

La versión puede ser descargada directamente desde las páginas de mozilla. Pero se avisa que sólo es válido para realizar pruebas. No presenta muchas características nuevas respecto a las betas anteriores por lo que nos encontramos ante una versión más estable que sólo (esperemos) solucione bugs de las betas anteriores.

Publicado por Abraham Covelo

May 22
Programación En el desarrollo de software la ausencia de errores es una autentica quimera. Tantos son los factores que finalmente pueden alterar el flujo que consideramos "normal" en el programa como los errores propios a cualquier actividad humana.

    Uno de los métodos más utilizados para realizar pruebas a nuestro software es el llamado de pruebas unitarias (unit testing). La base de este método es el hacer pruebas en pequeños fragmentos de nuestro programa. Estos fragmentos deben ser unidades estructurales de nuestro programa encargados de una tarea especifica, en programación procedural u orientada a objetos podemos afirmar que estas unidades son los métodos o las funciones que tenemos definidos.

    Tras realizar estas pruebas sobre los elementos unitarios de nuestro programa podremos eliminar gran parte de los errores de los que podría adolecer. Como ya sabemos cualquier prueba demuestra no la ausencia de errores sino que revela la presencia de ellos. Las pruebas unitarias no revelan errores en la integración de las partes unitarias ni tampoco otros problemas como el bajo rendimiento de las aplicaciones o problemas derivados del sistema sobre el que está ejecutándose nuestro programa.

    El objetivo de las pruebas unitarias es el aislamiento de partes del código y la demostración de que estas partes no contienen errores.

    Una vez creados el conjunto de pruebas unitarias sobre un fragmento de código los beneficios obtenidos, incluso antes de ejecutar ninguna prueba, son múltiples. Pasaré a enumerarlos:

Simplificación de la integración
    Las pruebas unitarias eliminan las posibles incertidumbres y errores en lo que se espera de cada una de las unidades ayudando a entender la integración de cada una de las partes.

Refactorización de código
    Una vez refactorizado el código; las mismas pruebas unitarias nos pueden servir para probar el nuevo código asegurándonos de que este sigue siendo válido bajo la nueva implementación.

Documentación
    Las pruebas unitarias sirven como método de documentación mismo. Los desarrolladores pueden ver a través de las pruebas unitarias cual es el objetivo de las distintas partes del código de una manera básica.

Diseño
    Cuando se desarrolla el software las pruebas unitarias pueden tomar el lugar del diseño formal. Cada prueba unitaria puede ser visto como un elemento de diseños que especifica las clases, los métodos y el comportamiento observable de la aplicación.


Publicado por Abraham Covelo

May 9
Programación Dentro de muy poco tiempo tendremos entre nosotros la próxima versión de php, php6. Esta versión ya está disponible en php.net para su descargar. Aunque la adopción de php5 y desaparición de php4 fue un proceso algo más lento de lo esperado. PHP6 no supone un cambio tan radical como el que sucedió con la versión anterior por lo que es de esperar, si todo va bien, que la adopción de esta versión sea más rápida.

    PHP sigue siendo el lenguaje script para desarrollos web más popular y la lista de nuevas características que vienen con esta nueva versión pueden situarle en posiciones todavía más destacadas.

Estas son las novedades que incorporará el lenguaje:

Soporte para Unicode

    PHP6 soporta Unicode en la mayoría de sus funciones principales. Esta característica tendrá un fuerte impacto ya que permitirá una mayor capacidad de internazionalización al soportar un conjunto de caracteres mucho mayor mediante sus funciones nativas.

Espacios de nombres (Namespaces)

    PHP6 soporta namespaces. Una manera de evitar colisiones entre los nombres que asignemos a las diferentes clases sin tener que estar elaborando notaciones especificas para evitar este problema. De esta manera al crear tu propio espacio de nombres no tienes que preocuparte por si php tiene una clase con el mismo nombre o si una librería externa podría fallar debido a una colisión en los nombres de clase.

    No es obligatorio el uso de namespaces lo que permite que el código de la versión 5 sea compatible con esta nueva caracteristica. Los namespaces aparecen ya soportados en la version php 5.3

Ejemplo:

<php
namespace ACC
class Dummy {}
$dummy = new ACC::Dummy();
?>

SOAP

    SOAP es uno de los protocolos empleados por los servicios web soportado en otros lenguajes como JAVA. SOAP permite la interoperativilidad entre diferentes plataformas.

    PHP6 tendra una extensión SOAP que nos permitirá una manera más sencilla de implementar tanto clientes como servidores SOAP

XML

    A partir de PHP5.1 XMLWriter y XMLReader han formado parte del núcleo de PHP lo que permite construir y leer mensajes XML sin tener que preocuparte de los detalles más complejos de este formato. PHP6 mejora esta funcionalidad

Cosas que se han eliminado en PHP6

    Además de los nuevas características añadidas, PHP 6 no tendrá algunas de las funciones y características propias de versiones anteriores. La mayoría de estas características, como register_globlas y safe_mode, son consideradas negativamente en la versión actual. Los que se oponen ha estas modificaciones arguyen que estos cambios provocará el fallo en los scripts actuales en cuanto se actualize a la nueva versión.

Estas con las características eliminadas en la próxima versión de PHP

magic_quotes
register_globals
register_long_arrays
safe_mode

Magic quotes

    Por razones de portabilidad, rendimiento e inconveniencia se recomienda ya no utilizar esta característica. magic_quotes escapa cadenas que proceden de datos introducidos por el usuario $_POST, $_GET, $_REQUEST y que podrían ser empleados en una sentencia SQL originando fallos en la seguridad de la aplicación si se introducen determinadas secuencias de caracteres. Cuando se elimine esto de PHP también desaparecerá la función get_magic_quotes_gpc(). En su lugar para eliminar este riesgo de seguridad debemos recurrir a funciones del estilo mysql_escape_string para mysql y pg_escape_string para PostgreSQL.

Register globals

    Register globals permitía inicializar variables a partir de datos externos ($_GET,$_POST,$_REQUEST) lo que potencialmente podría producir importantes errores en la aplicación y su seguridad. Register globals paso de estar activo a desactivo por defecto a partir de la versión 4.2

Register long arrays

    Se eliminan los variables superglobales $HTTP_*_VARS se ha mantenido por razones de compatibilidad, aunque se aconsejaba dejar esta característica deshabilitada para mejorar el rendimiento de los scripts.

Safe mode

    Cuando esta habilitada safe mode se aseguraba de que el propietario del fichero que se está ejecutando coincida con el propietario del fichero que se está empleando. Originariamente fue un intento para securizar determinadas operaciones en un entorno en el que el servidor estaba compartido.

Etiquetas PHP

    Ya no se permiten ni etiquetas cortas ni el formato ASP <% %> para encerrar fragmentos de código php

FreeType 1 y GD1

    El soporte para FreeType 1 y GD 1 será eliminado completamente de PHP debido a que ambas librería ya no son mantenidas desde hace bastante tiempo. Las nuevas versiones de ambas librerías si que seguirán en PHP ya que proporcionan mejor funcionalidad.

Ereg

    La extensión ereg también desaparecerá. En su lugar ya tenemos las expresiones regulares compatibles Perl (PCRE - Perl-Compatible Regular Expressions). De esta manera ereg() y eregi() pueden ser sustituidas por preg_match() y ereg_replace() y ereg_replacei() por preg_replace.

PHP 5.3

    Algunas de las características mencionadas previamente para la nueva versión ya han sido portadas a la versión 5.3 de PHP para que el cambio de versión no sea tan violento como son los Namespaces y la inclusión en el núcleo de PHP de XMLReader y XMLWriter.

Publicado por Abraham Covelo

May 8
SEO Una de las estrategias SEO que se emplean para diseñar desde cero un sitio web es el de los temas piramidales. Los estructuración del un sitio web en temas piramidales presenta ventajas no sólo desde el mundo SEO sino también a nivel organizativo y de usabilidad del sitio. Muchos sitios presente una estructura cercana a esta en mayor o menor medida pero al no comprender en profundidad las ventajas de este tipo de estructuración finalmente el sitio pierde estas ventajas a medida que el sitio crece en tamaño.

Los temas piramidales no son algo nuevo que haya surgido hace poco tiempo sino que ya han sido utilizados desde hace años.

Los sitios basados en temas piramidales son más sencillos de mantener, organizativamente facilitan la tarea de encontrar los contenidos que buscas y de optimizan sus el futuras mejoras y mantenimiento debido a su clara organización. Los temas piramidales se basan en concepto de tema.

¿Que es un tema?

Es la base, la idea común, a partir de la cual desarrollamos nuestro sitio. Es el termino unificador que reune todas las partes de nuestro sitio y que puede englobar todo el contenido de nuestro sitio bajo este concepto. Es el keyword que define todo nuestro conjunto de páginas.

Construcción de temas piramidales

La palabra/keyword principal que define el tema principal de tu sitio será la empleada en la página inicial, y todas los niveles debajo de la página principal contendrán variaciones de esta keywords de una manera jerarquizada. Es decir cada keyword debajo de la principal tendrá a su vez otras keywords (niveles) y actuará como englobador o tema común de todas las que se encuentren por debajo y así sucesivamente. De manera que cuanto más profundizaremos en la estructura del sitio encontraremos keywords cada vez más específicas.


Este tema principal estará recogido en nuestra página principal soportado por varios subtemas muy relacionados. Para soportar estos subtemas cada uno de ellos tiene otros temas fuertemente relacionados con este subtema y así seguiríamos a través de varios niveles.

Valor SEO
Sin valor Home page (tema principal)
bajo valor SubtemaA SubtemaB SubtemaC SubtemaD
medio valor kw a1 kw a2 kw b1 kw b2 kw c1 kw c2 kw d1 kw d2
alto valor ka1a ka1b ka2a ka2b ..........
Dinero $ $ $ $ $ $ $ $ $ $ .....

La teoría de los temas piramidales implica ver al sitio como un todo compartimentado. Comenzado por un contenedor que englobe a todo el sitio tema principal y diseñando subtemas nivel tras nivel para abarcar todo el contenido del sitio. Enlazar cada tema arriba y abajo pero no a través de los temas con diferentes temas padres (esto reforzara las páginas y la popularidad del enlace). Estructura vertical de enlaces NO HORIZONTAL.

Cosas importantes en el diseño de un sitio estructurado en temas piramidales, en cada nivel:

1. La pagina principal APENAS tiene valor SEO. Raramente ranquea bien y tampoco es algo que nos deba preocupar demasiado. Una página principal bien ranqueada con una estructura de este tipo es la excepción y no la regla. Si ranquea bien es generalmente debido a factores externos (off-the-page). Sus únicas funciones es ser usable para los visitantes y servir de alimento(enlaces a los niveles inferiores) a los buscadores que visitan tu sitio web. Intenta también colocar enlaces tan profundos como puedas a los buscadores les gusta el contenido de primer nivel sobre todo en keywords que te interesan especialmente.

2. Para el segundo nivel el valor SEO es más importante pero lo más importante aquí, es también colocar enlaces a los niveles más profundos de tu sitio web y no sólo al siguiente. Enlaces verticales dentro de este subtema arriba y abajo. No horizontales.

3. Valor SEO importante la distinción entre los niveles 4 y 5 puede ser confusa. Suele contener términos muy competitivos y de posicionamiento difícil. Algunos de los enlaces entrantes deberían proceder de la home page.

4. Suele tener el contenido básico de calidad del sitio. Enlázalo verticalmente. Si enlazas con sitios externos procura que sea también contenido muy relacionado.

5. Habitualmente las páginas que traen el dinero. Enlázalo con todas las páginas de sus niveles superiores


Con toda esa pirámide de keywords el impacto en el posicionamiento de estas keywords será muy importante pues cada una de ellos reforzará a cada una de las demás.

Ventajas temas piramidales:
1.-Es sencillo tener un sitio web organizado y centrado en el tema principal, a veces cuando un sitio web crece esto se vuelve algo complicado.
2.-Una correcta organización en temas te permite obtener una diferenciación clara entre las distintas partes de tu web y abarcar keywords especificas y sus variaciones en diferentes secciones.
3.-Una buena organización en temas tiene un impacto positivo en la selección, fuerza y posicionamiento de tus keywords.
4.-Una web estructurada en temas piramidales está preparada para el futuro. Los buscadores tienen un estructura organizada, limpia y con términos relevantes que no van a eliminar de sus bases de datos.
5.-Un web estructura así te permitirá ahorrar tiempo en el futuro
6.-Muchos de los buscadores actuales usan temas para sus algoritmos de posicionamiento

Buscadores basados en temas, ¿como funcionan?

La diferencia principal es que un buscador basado en temas visita las páginas de tu sitio web y las indexa en conjunto no una a una a media que las va visitando. El buscador basado en temas examina y pondera tu sitio web como un todo en lugar de hacerlo en cada página individualmente. Con este tipo de indexación es más difícil que una página aislada en una web no estructurada en temas obtenga un buen posicionamiento para una keyword que un sitio entero que hable de esta keyword y que reciba y tenga enlaces de keywords muy relacionadas.

Publicado por Abraham Covelo

(Página 1 de 2, en total 6 entradas)