April 11 2008

Tres opiniones desfavorables

Leía el mini artículo Tres opiniones favorables sobre PHP, donde algunos expertos dan su opinión sobre las cosas que favorecen al lenguaje PHP y me parece increíble, no lo que los expertos tengan que decir, sino la sarta de tonterías sin sentido por las que la gente discute. No se ustedes, pero yo estoy harto de estás absurdas peleas sobre cual es mejor lenguaje. Y la moda de hoy es “Ruby es mejor que PHP”.

He oído de todo, desde opiniones objetivas y centradas, hasta absurdos como simplemente decir “PHP apesta” sin dar una razón de peso real. Creo que debemos entender una cosa. Lenguajes hay muchos, con propósitos diferentes, nacidos bajo condiciones diferentes, algunos ya cumplieron su ciclo, y otros están en transición, pero lo importante no es competir para ver cual es el mejor lenguaje. Un lenguaje de programación será una excelente herramienta si el programador es excelente, y será una pésima herramienta si el programador es realmente malo. Así que antes de andar por ahí condenando tal o cual lenguaje, creo que primero deberíamos darnos cuenta que tanto conocemos el lenguaje de nuestra preferencia y que tan eficientes somos usándolo. No vaya a ser que nos hallemos adorando a un ídolo de papel construido más sobre nuestro ego e ineptitud que sobre una base, concreta y cuantificable.

Entonces, lejos de criticar un lenguaje, yo recompondría y daría tres opiniones desfavorables no sobre el lenguaje, sino sobre el programador.

  1. El programador tiende a idolatrar el lenguaje de su preferencia
  2. El programador tiende a olvidar que la curva de aprendizaje de un lenguaje nunca es similar en ningún individuo, por eso le es más fácil criticar a quienes empiezan por un lenguaje que no sea su favorito.
  3. El programador tiende a olvidar que él comenzó muchas veces como esos a quienes critica (aunque hay sus casos excepcionales)

PD. A los que me siguen en twitter, mis peleas con Yaraher sobre Ruby son pura joda, como todo lo que se escribe ahí.

To All Pioneers

October 26 2007

Capturar la IP real del usuario en PHP

En muchas de nuestras aplicaciones, nos veremos obligados o necesitados de capturar la ip de nuestros usuario, por ejemplo, para fines estadísticos, para alimentar la paranoia de nuestro jefe y / o cliente, etc. Así que la forma de capturar la ip sería:

PHP:
  1. $ip = $_SERVER["REMOTE_ADDR"];

Pero, por supuesto, este dato puede verse falseado por el uso de proxies y trucos similares para enmascarar la ip, así que hagamos una función php que nos devuelva la ip real del usuario

PHP:
  1. function ipreal()
  2. {
  3.     if ($_SERVER)
  4.     {
  5.         if ($_SERVER[HTTP_X_FORWARDED_FOR])
  6.             $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
  7.         else
  8.             if ( $_SERVER["HTTP_CLIENT_IP"] )
  9.                 $ip = $_SERVER["HTTP_CLIENT_IP"];
  10.             else
  11.                 $ip = $_SERVER["REMOTE_ADDR"];
  12.     }
  13.     else
  14.     {
  15.         if ( getenv( "HTTP_X_FORWARDED_FOR" ) )
  16.             $ip = getenv( "HTTP_X_FORWARDED_FOR" );
  17.         else
  18.             if ( getenv( "HTTP_CLIENT_IP" ) )
  19.                 $ip = getenv( "HTTP_CLIENT_IP" );
  20.             else
  21.                 $ip = getenv( "REMOTE_ADDR" );
  22.     }
  23.     return $ip;
  24. }

Que se utilizaría así

PHP:
  1. echo ipreal();

O así

PHP:
  1. $ip = ipreal();

RSS