Evitar navegación.
Principal

programacion

El futuro de PHP

El 13 de Julio de 2007, en el tercer aniversario del lanzamiento de PHP 5, se anunció que el desarrollo de PHP 4 iba a ser parado de manera definitiva, esto significa que a partir del 1/1/2008 no va a haber más versiones de PHP 4.4 y que se continuarán resolviendo problemas críticos de seguridad hasta el 08/08/2008, traduciendo que antes de esa fecha deberiamos tener nuestras aplicaciones corriendo bajo PHP 5.

El 11 de Noviembre del 2005 el núcleo principal de desarrolladores de PHP se encontraron en París para decidir el camino que iba a tomar PHP6, del encuentro salieron todos los cambios que iba a sufrir.

Hay que tener en cuenta estos cuatro puntos:

  1. La mayoría de las nuevas funcionalidades planeadas para PHP 6, saldrán en PHP 5.3 y 5.4.
  2. La migración de aplicaciones PHP 5 a PHP 6 será mucho más costosa que de PHP 4 a PHP 5.
  3. PHP 6 aportará sobre todo soporte para Unicode y tardará todavía, al menos, un año más.
  4. Pese a la salida de Eclipse PDT, Zend Studio seguirá desarrollándose.

Nuevas características de PHP V6

Soporte Unicode

Posiblemente la mejora más notable para la nueva versión de PHP, está característica nos permitirá adaptar nuestra aplicaciones a las necesidades de la internacionalización, uno de los grandes problemas de la red.

Unicode es un estándar industrial cuyo objetivo es proporcionar el medio por el cual un texto en cualquier forma e idioma pueda ser codificado para el uso informático.

Actualmente podemos activar esta característica bajo petición, con lo cual PHP consume más recursos al tener que guardar las clases, funciones y el resto de elementos necesarios.

Namespaces

El uso de namespaces no provee de organización para proyectos donde la librería de clases es extendida y genera un desorden tenerlas en un scope global, por lo tanto tendríamos mejor organizacion para proyectos en capas lógicas o fisicas.

Nuevas características de PHP V6 (Web 2.0)

SOAP

SOAP (Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. SOAP es uno de los protocolos utilizados en los "Web Services".

La extensión de SOAP para PHP llegó con PHP V5, pero esta extensión no está habilitada por defecto, en PHP V6 a menos que cambies la configuración por defecto SOAP estará habilitado por defecto permitiendo sin ninguna modificación desarrollar aplicaciones que se beneficien de los "Web Services".

XML

Desde PHP V5.1, XMLReader y XMLWriter forman pare del núcleo de PHP, esto facilita el trabajo con documentos XML dentro de las aplicaciones PHP, lo bueno es que igual que con la llegada de esta nueva versión el funcionamiento mejorará ya que XMLReader y XMLWriter estarán activadas por defecto.

Principales cambios con versiones anteriores

Resgister Globals

El compilador nos devuelve un error E_CORE_ERROR cuando se encuentre con una variable global registrada.

Magic Quotes

Al igual que con Register Globals, su uso provocará un E_CORE_ERROR, afectará a magic_quotes, magic_quotes_sybase y magic_quotes_gpc.

Desaparece el modo seguro

Parece ser que el motivo es que daba una impresión de seguridad no real.

Se abandona el soporte de Freetype1 y GD1

Son librerías que tienen ya muchos años y con versiones actualizadas.

HTTP_*_VARS

En PHP6 sólo $_POST y $_GET serán aceptados, HTTP_*_VARS devolverán errores.

El futuro de PHP

En estos momentos PHP 5.2.5 es la versión más popular a pesar de que versiones como: PHP 4.4.8 y 4.4.4. siguen teniendo un gran número de usuarios.

Versiones PHP en involución


Este gráfico presenta datos de sitios webs que han modificado su versión de PHP en el mes de Abril, como se puede ver poco a poco va desapareciendo las versiones 4.x de PHP.


Oculta la extensión PHP en tus páginas


En esta entrada vamos a ver una solución por si por algún motivo en concreto quereis convertir las extensiones PHP de vuestro sitio web en otro tipo de extensión, ya sea alguna conocida con .htm o alguna que se te ocurra, en este ejemplo utilizaremos .wii.

Como convertir páginas con extensión .PHP a la extensión que desees

Los requisitos para realizar este truco es tener un servidor Apache version 1.3 ó superior. La solución es redefinir los procesos de ejecución asociados a los tipos de archivos mod_mime de Apache.

Despues de esta breve introdución pasaremos a la explicacion de eeste sencillo proceso de cambiar las extensiones .php por .wii en nuestro servidor.

Tenemos que indicar al servidor que ejecute los archivos .wii como .php.

La primera cosa que necesitaremos hacer es configurar Apache para permitir que utilicemos ”.wii” como extensión.

  • Abrimos el archivo de Apache httpd.conf y vamos al área donde esta AddType application/x-httpd-php .php y apenas agreguemos un .wii detrás de él. Debe parecerse esto:
    AddType application/x-httpd-php .php .ass
  • Una vez que hayas conseguido incorporar tu “.wii” en el archivo de httpd.conf, reinicia apache. Generalmente podría ser “reiniciar httpd” o “reiniciar apachectl”, todo depende de tu sistema.

Ahora, una vez que cambiemos todas nuestras extensiones “.wii” de PHP en vez de” .php " podrás ver las paginas de esta manera:

"tusitio/index.wii" y funcionará justo como fuera "tusitio/index.php"

Otra cosa que podemos ajustar en el Apache en el archivo de httpd.conf es el ServerSignature a OFF y después corregir tu archivo de php.ini para incluir el “expose_php = off”.

Estos ajustes juntos harán más difícil a usuarios maliciosos descubrir la versión del servidor y otras informaciónes valiosas que pueden poner en peligro tu servidor.

Recapitulación rápida de lo que acabamos de hacer:
1.) Corregir httpd.conf para reflejar “AddType application/x-httpd-php .php .wii”

2.) Corregir httpd.conf para reflejar “ServerSignature off”

3.) Corregir el archivo de php.ini para reflejar el “expose_php = off”

4.) Renombrar todos los archivos de .php a .wii y después fijar todos los enlaces para reflejar .wii en vez de .php

5.) ¡Reiniciar Apache y prepararte para mostrar tu extension .wii!

Averiguar si una web utiliza PHP

Bueno si te gusta o desarrollas tus aplicaciones con Php seguro que alguna vez te has preguntado que webs con una gran cantidad de tráfico utilizan php como soporte principal de sus aplicaciones.

Para ver que grandes webs utilizan Php comprobemos por ejemplo las 100 primeras del Ranking Alexa.

  1. Yahoo INC

  2. Wikipedia.org

  3. Friendster.com

  4. Facebook.com

  5. Digg.com

  6. Sourceforge.org

  7. Flickr.com

Y no unicamente lo utilizan las grandes webs sino que tambien es utilizado por CMS cómo Wordpress y Drupal.

Ahora probablemente te preguntes y cómo podemos saber si de verdad estos sitios utilizan Php... hay diferentes maneras:

- La primera es mirar la extensión de los archivos que se pueden ver en las diferentes URLs de los sitios (no funciona si esta utiliza URLs Amigables) ó si lo han ocultado con un método como por ejemplo el que anteriormente hemos visto.

- La segunda manera es un pequeño truco no muy conocido...

* PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 - Creditos Php
* PHPE9568F34-D428-11d2-A769-00AA001ACF42 - Logo Php
* PHPE9568F35-D428-11d2-A769-00AA001ACF42 - Logo Zend
* PHPE9568F36-D428-11d2-A769-00AA001ACF42 - Huevo de Pascua

www.dominio.com/?=*(código)

Pongamos un ejemplo:
http://www.meneame.net/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000: si este enlace nos devuelve los créditos de Php será porque esta página esta desarrollada con este lenguaje, cómo puedes comprobar Meneame.net está desarrollada con Php.
Sin embargo en el caso http://www.google.com/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000 nos devuelve una página de error porque no está desarrollada con Php.


Demoscene (64KB generando 1.9GB)

La demoscene es una subcultura informática que hace unos años era tremendamente popular entre los desarrolladores.

Dado que, antes del PC, los ordenadores de una misma línea tenían capacidades idénticas, era posible comparar demos en plataformas más antiguas.

Esto permitió crear un ámbito competitivo, en el cual cada uno de los equipos de programación de demos trataban de superar a los demás diseñando sorprendentes efectos. Los expertos de demos se concentran en extraer el máximo rendimiento de la máquina que programan.

Gonzo escribio hace un año sobre esta presentación 3D en 64KB que sin comprimir ocupa 1.9GB, hay que decir que es un tema antiguo pero no por ello debemos dejar de sorprendernos:

fr08_final.zip [64kb]

En un primer momento al verla vas a pensar que es imposible, despues pensándolo un poco y viendo más información sobre el mundo de la demoscene te lo vas creyendo.

Para aquellos no relacionados con la demoscene aquí les dejo un link: ¿Qué es la demoscene?

Las demos comenzaron siendo firma de los crackers que cuando se iniciaba uno de sus programas crackeado las mostraban a modo de presentación, el objetivo principal de una de estas demos es demostrar que se es mejor programador y que se tienen mejores habilidades gráficas y musicales respecto a los demas grupos.

Premios Scene.org

Obviamente Muchos de estos crackers terminaron trabajando para la industria de los videojuegos.

¿Qué cabe en 64 KB?

No hay que caer en el error de pensar que como se pueden hacer este tipo de "demos" tambien podriamos tener videos de 3 minutos en 64KB (Alta Calidad)... hay que pensar que todo es matemática (Técnicas vectoriales), por lo tanto la manera de verlo es que es una demo de 64KB y no significa que hayan comprimido 1.9 GB sino que los 64KB mencionados son capaces de generar el equivalente a 1.9 GB.

Esto se consigue mediante algoritmos de generación de texturas, generación de sonidos, animación 3D y muchas sincronización todo ello ejecutandose en tiempo de ejecución, por lo tanto y resumiendo los 64KB contienen las "instrucciones" necesarias para generar los 1.9 GB en memoria.

Generación Procedural

Todo lo anterior está relacionado con la técnica de generación procedural, en la que los gráficos son generados al momento, en vez de ser cargadas las texturas. Esto implica por un lado que no es necesario tener gigas y gigas de imágenes y texturas, ahorrandonos la mayor parte del espacio ocupado por un juego al ser generados (los gráficos) al momento y que requiere más CPU de lo habitual. | Ver Porcedural Generation.

Una de las mejores pruebas de esto es ".kkrieger" (First Person Shooter) que pesa sólo 96kb (Descargar).



¿Es PHP un buen primer lenguaje de programación?

Es una buena pregunta y seguramente te harás si te gustaría empezar a programar, lo mejor en estos casos es preguntar a personas experimentadas y que están capacitados para dar buenos consejos.

En estos momentos probablemente la mejor idea sea aprender algún lenguaje web (PHP, ASP.net, etc) ya que es la tendencia en estos momentos, dentro del mundo del desarrollo web sin duda el lenguaje idóneo es PHP y si no te sientes realmente atraido por el desarrollo web los más recomendables serían: C, C ++, Java y Visual Basic.

PHP como primer lenguaje de programación

En CodeUtopia nos dan un buen número de razones por las que PHP es un buen primer lenguaje de programación.

PHP no es un lenguaje excesivamente complejo y con una curva de aprendizaje asequible, es bastante fácil de aprender pero también te permite aprender características de lenjuages más complejos como son los lenguajes de programación orientados a objetos.

Es posiblemente el lenguaje web más popular lo que hace que haya numerosos tutoriales y ejemplos de código que agilizan el periodo de aprendizaje.

Debido a su enorme popularidad probablemente sea con el lenguaje que más fácilmente encontrarás trabajo.

Por lo tanto PHP reune las características más importantes que un primer lenguaje de programación debe reunir:

  • Emepzar a programar es realmente sencillo
  • Es potente y proporciona funciones de alto nivel con poco código
  • Es fácil ver nuestro progreso en un corto periodo de tiempo

¿Por qué comenzar con PHP y no con C?

Aunque PHP posee grandes coincidencias con los lenguajes más comunes de la programación estructurada (C y Perl) es más recomendable que estos ya que nos permite involucrarnos con aplicaciones de contenido dinámico sin tener que aprender todo un nuevo grupo de funciones.

Con C tenemos bastantes conceptos difícles de entender como es el caso de los punteros, se necesita una gran cantidad de código para las aplicaciones más sencillas y para principiantes puede ser un tanto difícil enamorarse de la consola.


El crecimiento de UTF-8 en la red

Hace una semana escribíamos sobre la internacionalización y lo planteábamos como uno de los grandes problemas de la red. Lo más recomendado es usar UTF-8 a la hora de codificar tanto la base de datos como el sitio web.

Usar UTF-8 beneficia todos aquellos sitios web que de alguna manera necesitan ofrecer un soporte de internacionalización, es decir con UTF-8 ofreces la posibilidad de interactuar con tu página a cualquier persona que no hable tu idioma.

Crecimiento de Unicode en Internet

El crecimiento de Unicode es espectacular y hace poco menos de un mes Google ha comenzado a utilizar Unicode 5.1 con lo que ahora es posible la búsqueda en algunos idiomas más...



Cómo generar códigos QR

Los códigos QR

Bueno cómo todos sabeis un código de barras una representación gráfica mediante elementos claros y oscuros de caracteres alfanuméricos, surgió en la década de los 50's y su extendió en gran medida gracias a su facilidad a la hora de transmitir información, mediante un lector de códigos de barras la información es transmitida a una computadora que es la encargada de procesar los datos.

Código QR (Quick Response Barcode)

Estas fotos son un ejemplo de este tipo de código, aquí tienes más información de cómo leer este tipo de códigos.

El código QR (Quick Response Barcode) es un código bidimensional con una matriz de propósito general diseñada para un escaneo rápido de información, creado en 1994 por Denso Wave empresa de origen Japones (cómo no), QR es eficiente para codificar caracteres Kanji (Kanji es el nombre de los caracteres chinos utilizados en la escritura de la lengua japonesa), es una simbología muy popular en Japón.

El códigos QR es de forma cuadrada y puede ser fácilmente identificado por su patrón de cuados oscuros y claros en tres de las esquinas del símbolo, su nombre es debido a la frase "Quick Response (Respuesta Rapida)" ya que se diseñó para ser decodificado a alta velocidad, otros datos que podiamos destacar es que es capaz de codificar todos los caracteres ASCII además de información binaria, es omnidireccional y se lee con la ayuda de un lector de imagen, por ejemplo en Japón ya hay cerca de 60 millones de personas que lo utilizan, con la ayuda de un chip implantado en el teléfono móvil y que utiliza la cámara de fotos como lector,este tipo de código a diferencia del convencional puede almacenar hasta 7.089 caracteres.

qrcodeSi te preguntas para que sirve, el ejemplo más significativo lo tenemos en japón en dónde muchos teléfonos móviles pueden capturar el código de barras y guardan la información en su memoria.

Los códigos QR por lo tanto podrán convertirse en la revolución del marketing móvil: un nuevo tipo de código de barras con mayor capacidad que, colocado en el embalaje de un producto o en el anuncio de una revista, permite al consumidor extraer toda clase de información útil con tan solo fotografiarlo con móvil, realmente interesante a la hora de ofrecer descuentos sobre productos o información sobre promociones especiales.

Generar códigos QR

La manera más sencilla de generar estos códigos tan populares últimamente es utilizando la Api Chart de Google | Ejemplo de código QR.

Código QR


http://chartserver.apis.google.com/chart?cht=qr&chs=300x300&chl=http://w...
http://chartserver.apis.google.com/chart?cht=qr&chs=300x300&chl=http://w...



Api de la Wikipedia

MediaWiki ha publicado por fin una API para la Wikipedia, esta API está disponible aunque avisan que aún se encuentra en fase de desarrollo y todavía puede estar sujeta a pequeñas modificaciones.

Esta noticia es importante ya que la Wikipedia cuenta con más de 10 millones de artículos, y aunque el inglés sigue siendo el idioma más popular con 2 millones de artículos hay gran cantidad de información en otros idiomas: Alemán, Francés, Polaco, Japonés, Italiano, Alemán, Holandés, portugués, Español y Sueco.

Documentación API Wikipedia

Es cierto que todo aquel que anteriormente ha querido automatizar un proceso para recoger datos de la Wikipedia lo ha tenido fácil, el XHTML que devuelve la Wikipedia es muy limpio y sencillo de parsear, a pesar de esto la API es sin duda ya la mejor solución.


UTF-8 y la internacionalización

La internacionalización es desde un principio uno de los grandes problemas de la red. Han sido definidos diferentes estándares que por lo general al final nos traen un buen dolor de cabeza.

La clave la tenemos en la codificación de caracteres que es el mecanismo que nos permite convertir un carácter en un símbolo que sea posible representar en otros sistema aplicando las reglas de codificación del mecanismo escogido.

Las reglas de codificación definen la manera en la que se codifica un carácter para ser luego representado sin problemas.

Reglas de codificación

Dentro de estas reglas de codficación destacan:

Utiliza UTF-8

Lo más recomendado es usar UTF-8 a la hora de codificar tanto la base de datos como el sitio web. Usar UTF-8 beneficia todos aquellos sitios web que de alguna manera necesitan ofrecer un soporte de internacionalización, es decir con UTF-8 ofreces la posibilidad de interactuar con tu página a cualquier persona que no hable tu idioma.

Si tu página no está correctamente configurada para el uso de UTF-8, cualquier persona que escriba por ejemplo un comentario en un juego de caracteres distinto al tuyo verá como resultado una nube de símbolos raros.

El único problema es que pasar a UTF-8 es un proceso un poco delicado porque hay que configurar diferentes apartados, no hay demasiada información en español sobre el tema, pero la verdad que hay algunos textos que son de obligada lectura para los interesados en el tema, veamos los mejores: