Archive for the ‘PHP’ Category

01.04.2010 by Ramiro

La Petición de MySQL

MySQL es la base de datos qeu usamos en QuasarCR.com y para todos los clientes. Es gratis, código abierto, funciona muy bien. Breve historia: el proyecto se creó por Michael “Monty” Widenius y David Axmark en el 94. Mucho éxito, se formó MySQL AB, la empresa pasó a ser más corporativa (acciones y toda la cosa), creció más, full soporte para empresas, gran proyecto… se vendió a Sun Microsystems, otra empresa de servicios gigante (encargada de Java)… Mony Widenius se fué ya que en ese momento solo tenía acciones y proyectos en la manga entre ellos MariaDB (proyecto similar a MySQL).

Oracle, competidora de MySQL y en cierto modo opuesta por ser 100% paga compra Sun. Se arma gran revuelo pero la empresa dice que mantendrá el proyecto.

Un año después (actual) sale la petición de la mano de Widenius alertando sobre el futuro de MySQL.

Realidades y Críticas que se presentan en varios lados:

  • Aunque sean proyectos Open Source la verdad es que se crearon empresas y se vendieron bajo las normas del mercado. Sun tampoco garantizó nada y aunque lo haga Oracle, son empresas, si quieren hundir el proyecto lo hacen.
  • Las contradicciones del capitalismo: widenius cobró una fortuna cuando MySQL se vendió la primera vez y aunque tiene un proyecto interesante volvió a defender su proyecto inicial. Esto es raro.
  • Oracle no anunció nada pero es raro y peligroso que una empresa compre a su competencia directa. Estoy de acuerdo en que la Unión Europea no tiene idea de lo que son proyectos Open Source y el impacto que tienen y cómo se comparan con otras empresas. El problema quizas es que se ve a Sun con Oracle, dos monstruos y no se evalúa el impacto en proyectos.
  • Si Oracle sepulta MySQL van a aparecer Forks (proyectos derivados), inclusive Monty tiene el suyo. Hay alternativas… pero si significaría cambios en proyectos (caso WordPress / vBulletin por nombrar algunos)… miles de proyectos deberían reestructurarse. En el caso de QuasarCR.com no es un problema muy grande.

En definitiva seguramente voy a firmar la petición, solo por el hecho de que mantengan el proyecto… en cuanto a las negociaciones que se hicieron: nunca estuve de acuerdo y no me parece que una empresa como Oracle compre MySQL. Por poner un ejemplo sería como que Microsoft compre Canonical, la empresa que desarrolla Ubuntu.

07.08.2009 by Ramiro

¿Cómo Aprender PHP?

De vez en cuando me preguntan cómo hice para aprender PHP. Lo que respondo casi siempre es lo mismo: toco de oido. Con las ventajas y desventajas que tiene ser autodidacta esa fué mi manera de aprender y por el momento me ha servido :D pero… uno no aprende solo, con estudios académicos o tocando de oido siempre hay una mezcla de todo. En mi caso (y desglozando un poco el “toco de oido”) la cosa fué así:

  1. Pasión: como en todo, a uno le tiene que gustar, sino no hay ganas de aprender en los momentos en los que uno tiene que estar en una clase o tiene que leer algo que sabe que va a resultar aburrido o aguantarse a un cliente que le pide a uno algo con lo que no está 100% de acuerdo. Si no te gusta, no sabés para qué lo estás aprendiendo… mejor, no lo aprendas porque va a ser frustrante.
    En mi caso siempre me gustó la computación y la programación pero mi motivación salió de los video juegos y del querer poder programar páginas dinámicas para comunidades en línea. Me llamó muchísimo la atención en las épocas de juagr Quake 3 Arena cómo había scripts que sacaban datos de un servidor y pasando por programación transformaban esos datos en estadísticas, íconos y tablas.
  2. Libros e Internet: mi despegue se debió al libro Build Your Own Database Driven Web Site Using PHP & MySQL
    . Es el único libro que leí sobre PHP (seguramente porque fué el único que entendí :D ). Escrito por Kevin Yank para SitePoint.
    Además complementé lo que no me salía con sitios en Internet. Muchos de ellos siguen estando ahi pero recomiendo que cada persona busque… pasaron más de 8 años desde que leí el libro asi es que ahora hay muchos más recursos en Internet y acabo de leer que el libro ya va por su 4ta edición por lo cual está super revisado y actualizado. Además, volviendo a recursos en línea: Foros! el mejor lugar para encontrar respuestas a los problemas y dudas o presentar dudas propias.
  3. Humildad y Práctica: fuera de los libros y el research en Internet gran parte del conocimiento lo obtuve de compañeros de trabajo. Escuchar y aprender de otras personas es algo que muchas veces no se pone en los currículums.
    Además, todo lo que nos enseñan los libros o la Universidad no se compara con la práctica y la puesta en marcha de todas esas herramientas en un ambiente real. Hay que escuchar siempre y ver otras maneras de hacer las cosas. También es bueno combinar otras actividades relativas para ampliar el espectro de todos los conocimientos. Para mí esto me lo dá incluir Diseño y Mercadeo / SEO en los proyectos, para otras personas es incluir filosofías, Programación Orientada a Objetos o conocer otros lenguajes. Todo vale. Cuántos más elementos se tengan en cuenta mejor es la programación.
06.30.2009 by Ramiro

PHP 5.3

La nueva versión de PHP agrega Namspaces, funciones de internacionalización, inclusión de nuevas extensiones (Phar, SQLLite3, FileInfo y otras) y más de 140 bugs arreglados entre otros cambios. Pueden ver el anuncio junto con la lista de cambios y novedades de PHP 5.3 en este enlace.

phplogo

06.09.2009 by Ramiro

Reunión PHP Costa Rica 25 de Junio, 2009

La gente de CostaRicaPHP.org anunció la próxima reunión del grupo de PHP para el jueves 25 de Junio a las 6PM en la Universidad Latina de Costa Rica. Aula de Videoconferencias, Edificio Ciencias de la Salud, Tercer piso.

Se estará dicutiendo la nueva versión de PHP 5.3, que hay de nuevo y ejemplos de código.

Los invito a tod@s a asistir, y también a invitar a todas aquellas personas que les interese PHP.

¡Nos vemos!

Más información en http://www.costaricaphp.org/

03.06.2009 by Ramiro

PHP y Firefox, problemas de doble refresh

Hacía tiempo que no escribía en esta categoría (PHP).

Hace unos días tuve que revisar un código y a la hora de neviar datos con un formulario noté que la página, una vez que recargaba se volvía a actualizar (refresh). Revisando el código me di cuenta de un pequeño gran detalle. Falta el exit; después del redirect usando header().

<?php
header ("Location: fdsa.php");
exit; # <-------------- esto tiene que estar!!!
?>

En mi caso el problema aparecía con Firefox. Pero puede que lo mismo pase con otros navegadores.

12.04.2008 by Ramiro

Enviando Correos con PEAR::Mail

Hace un tiempo tuve algunos problemas con la función mail() de PHP y empecé a buscar alternativas. Por suerte los primeros ejemplos que vi fueron de PEAR lo cual me garantizaba no tener que hacer “loco” en el servidor. Auqneu esto puede ser una limitante para algunos alojamientos aunque ya la mayoría de alojamients serios sobre PHP ofrecen la opción (como en cPanel) de bajar paquetes de PEAR desde un panel de control.

Antes de pasar a los ejemplos claro que uno de los dramas con la funcion mail era que los correos no llegaban bien, era fácil cometer un error con los headers o tener que luchar con caracteres raros cuando se convertía de ISO 8859-1 a UTF-8. Asi es que el ejemplo va para enviar correos en HTML y Texto.

require("Mail.php");
require("Mail/mime.php");

# A Quién va el correo
$to="micorreo@midominio.com";

# El asunto / título del mensaje
$subject="Probando correos con PEAR::Mail";

# El mensaje o body en texto
$mensajeTexto="Su cliente de correo electrónico es viejísimo! Actualice para poder ver esto!!!";

# El mensaje con formato en HTML
$mensajeHTML="

Hola, este es un ejemplo de correos con PEAR::Mail

";

# Los headers del correo
$headers=array();
$headers['From']="no-reply@midominio"; # Quien lo manda
$headers['To']=$to; # Aca va el correo que definimos mas arriba
$headers['Subject']=$subject; # El asunto
$headers['X-Mailer']="X-Mailer: Mi Mailer en PHP"; # Si quieren identificar de donde sale
$headers['X-Priority']=3; # La prioridad del correo (1 es importante)
$headers['Errors-To']="webmaster@midominio.com"; # A donde va el correo si sale algo mal
$headers['Return-Path']="no-reply@midominio.com";

# Empieza el baile

$message = new Mail_mime();
$message->setTXTBody($messageTEXT);
$message->setHTMLBody($messageHTML);

# Aca definimos el encoding (esta es la parte de Mail::Mime)

$mimeparams=array();
$mimeparams['text_encoding']="7bit";
$mimeparams['text_charset']="UTF-8";
$mimeparams['html_charset']="UTF-8";

# Metemos todo en el body, Pear se encarga de armarlo
$body = $message->get($mimeparams);

# Cargamos los headers, Pear se encarga del resto...
$headers = $message->headers($headers);

# Enviamos
$smtp = Mail::factory('smtp', array ('host' => "127.0.0.1", 'port'=>25, 'auth' => true, 'username' => "no-reply@midominio.com", 'password' => "mipassword"));

$mail=$smtp->send($to, $headers, $body);

#Controlamos de que no haya problemas
if (PEAR::isError($mail)) {
print "Error";
}else{
print "Correo enviado";
}

10.06.2008 by Ramiro

Zona Horaria en PHP diferente a la del servidor

Problema: la hora que aparece en PHP es diferente a la del server.

Solución 1 – Cambiar la hora en el servidor: primero, si el servidor está en otra zona horaria y usted puede cambiarlo, hágalo. Si se trata de un proveedor de alojamiento esto no es posible de hacer y hay que arreglar la hora usando PHP.

Solución 2 – Agregar la Zona al php.ini: pero, si podemos cambiar la zona del servidor o si sabemos que está bien y podemos cambiar el php.ini debemos agregar la siguiente línea en el archivo:

date.timezone = “America/Costa_Rica”

(usar comillas dobles, las simples no funcionan y no olvidar reiniciar Apache para que los cambios surtan efecto)

La lista de lugares / paises se puede consultar en: http://cr.php.net/manual/en/timezones.america.php

Solución 3 – Cambiar la Zona desde PHP: si no es posible cambiar el php.ini podemos agregar la siguiente función al comienzo de nuestro archivo PHP:

date_default_timezone_set("America/Costa_Rica");