jueves, 24 de septiembre de 2009

PHP, tercer lugar en lenguajes de programación.

TIOBE publicó su ranking de popularidad de lenguajes de programación en donde PHP aumenta cada vez más su popularidad, quedando en tercer lugar sólo después de Java (primer lugar) y C (segundo lugar). Este año avanzó dos posiciones respecto del año anterior. La gran sorpresa es que sobrepasó a C++, uno de los lenguajes más populares y de más uso en el mundo

La forma de establecer este ranking es considerando la cantidad de programadores disponibles en el mundo que manejen los respectivos lenguajes, cursos de capacitación y resultados de búsqueda en los principales motores.

Parte de este crecimiento es también gracias a al enorme uso de CMS como WordPress o Joomla. También es atribuible al uso masivo de entornos LAMP (Linux, Apache, MySQL y PHP).

Los resultados del ranking.

miércoles, 23 de septiembre de 2009

Disappear

Uno de los discos que más me gusta de Dream Theater es Six Degrees Of Inner Turbulence, de este una de las canciones que me encanta es Disappear:


Why, tell me the reasons why
Try, still I don't understand
Will I ever feel this again
Blue sky, I'll meet you in the end
Free them, free the memories of you
Free me, and rest 'til I'm with you


A day like today
My whole world has been changed
Nothing you say
Will help ease my pain


Turn, I'll turn this slowly round
Burn, burn to feel alive again
She, she'd want me to move on
See me, this place I still belong
Give chase, to find more than I have found
And face, this time now on my own


Days disappear
And my world keeps changing
I feel you here
And it keeps me sane


So I'm moving on
I'll never forget
As you lay there and watched me
Accepting the end
I knew you were scared
You were strong, I was trying
I gave you my hand
I said it's okay letting go time to leave here
And I'll carry on
The best that I can without you here beside me
Let him come take you home

lunes, 21 de septiembre de 2009

Clase para subir archivos (PHP)

En nuestros desarrollos para la web no sólo debemos ingresar datos a través de campos de textos sino que además, debemos subir archivos ya sea de imagen, texto, etc. Hace tiempo atrás me salió un proyectito en que esto era una constante por lo que opté por escribir una clase.

Advertencia antes de usar: Escribo partiendo de la base que conocen la variable global $_FILES.

Esta clase tiene los siguientes atributos:

  • archivo : El archivo en sí mismo. Este atributo corresponde a la variable $_FILES['archivo']['name'].
  • directorio: Cadena que contiene la ruta al directorio de destino.
  • tipoArchivo: Nos indica a que tipo de archivo corresponde. Esto se obtiene a través del método $this->getTipoArchivo() aplicado al atributo archivo.
  • tipoPermitido: Array con las extensiones de los tipos de archivos permitidos.
  • tamanoArchivo: Tamaño del archivo a subir, se obtiene desde la variable $_FILES['archivo']['size']
  • tmp: Directorio temporal en donde está cargado el archivo en espera a su manipulación. Se obtiene desde la variable $_FILES['archivo']['tmp_name'].
  • nombre: Junto con tipoArchivo forma el nombre que tendrá finalmente el archivo en el directorio de destino. 
  • tamanoMaximo: Entero que indica el tamaño máximo que tendrá el archivo. Esto se anota en Megas.
Sus métodos son:

  • __construct: Constructor de la clase. Los parámetros que recibe son:
    • archivo: Corresponde a la variable $_FILES['archivo']['name'].
    • dir: Cadena con la ruta al directorio de destino. Ej "var/www/sitio/".
    • extPermitida: Array con los tipos de archivos permitidos. Ej. array("doc","xls").
    • tamano: Corresponde a la variable $_FILES['archivo']['size'].
    • tmp: Corresponde a la variable $_FILES['archivo']['tmp_name'].
    • nombre: Cadena con el nombre que tendrá finalmente el archivo. Sino se indica toma lo indicado en la variable archivo.
    • tamPermitido: Entero que indica el tamaño máximo del archivo a subir, sino se indica entonces considera lo indicado en la variable de entorno upload_max_filesize.
  • getTipoArchivo: Obtiene la extensión que permite identificar el tipo de archivo que estamos manipulando. Tiene como parámetro de entrada el nombre del archivo (está basado en algo que publiqué hace un tiempo) Se usa en el constructor.
  • checkType: Revisa que el archivo a subir corresponda con los tipos permitidos.
  • checkSize: revisa que el archivo a subir tenga un tamaño MENOR al máximo permitido.
  • upLoadFile: Llama a los 2 métodos anteriores, más una comprobación de duplicación de archivos. Si cumple entonces sube el archivo por medio de la función nativa de PHP move_uploaded_file().
  • delFile: Borra el útlimo archivo subido.
Por último cuando trabajen con carga de archivos deben SIEMPRE considerar lo siguiente:
  • Cuidado con el tipo de archivos permitidos en la carga, podemos dejar abierta la puerta para que ingresen archivos maliciosos ocasionando más de un dolor de cabeza a uds. o a quienes tengan acceso.
  • La carpeta de destino debe tener permisos de escritura pero no de ejecución.
  • El tamaño máximo debe mantener el equilibrio entre las necesidades del desarrollo, lo permitidos por las directivas de PHP y el ancho de banda del cliente que sube un archivo.
Accesos:

sábado, 12 de septiembre de 2009

Facebook Lite, volviendo al principio.

Facebook lanzó una versión liviana para aquellos usuarios que sólo desean comunicarse con amigos y familia. Es una vuelta a los inicios del popular red social.

Hace ya casi un año cerré la cuenta debido al bombardeo de publicidad, aplicaciones, encuestas y cadenas odiosas. Todo eso hacía, en mi opinión, bastante desagradable su uso.

Veamos cuánto duro con esta versión.

Dr. House, promo de la 6ta. temporada

He aquí un video promocional de la 6ta. temporada que se estrenará el próximo 21 de septiembre: