August 14 2008

Microsoft sepulta el ECMAScript 4

Microsoft y Yahoo han sepultado la versión 4 del estándar ECMA al oponerse a esta y crear su versión propia que llamaron 3.1 y convencer al comité de seguir los pasos de está versión ya que según los argumentos dados “algunas cosas de ES4 son inapropiadas para la web. Específicamente, los paquetes de clases, los namespaces y el binding.”, argumento por demás ridículo si tomamos en cuenta las millones de RIAS corriendo en la red y las aplicaciones basadas en Java por solo decir algo. Solo puedo decir que una vez más, el dinero, la pereza y el monopolio de unos cuantos se impone a la razón, las buenas prácticas y al avance de la web, es una lástima, pero también es irónico que durante la O’Reilly Open Source Convention Microsoft se llenará la boca diciendo que ellos fomentan la interoperabilidad y el desarrollo de la industria de fuente abierta.

Más información: Cristalab

April 29 2008

Emulando listas de correo con php de forma rápida y sencilla

Aclaración: Enviar correo de forma masiva e indsicriminda es SPAM, no importa como lo quieras justificar, es SPAM, por favor asegurate de que las personas a las que les envíes este tipo de información, esten plenamente conscientes de lo que están recibiendo. Licencia Creativa, ni su autor, ni su administrador se hacen responsables por el mal uso que se haga de esta información

Si tenemos un servidor de correo plenamente instalado, a veces es algo tedioso y fastidioso estar configurando software de listas de correos, aunque existe software muy bueno para ello, hoy vamos a ver una forma sencilla en como podemos ahorrarnos ese paso y utilizar una cuenta de correo común y corriente para esos fines.

¿Qué necesitamos?

  1. PHP a nivel muy básico
  2. Un archivo de texto simple en el que escribiremos los datos de nuestros usuarios en la forma nombre, correo
  3. Por supuesto, la lista de nuestros usuarios
  4. Una cuenta de correo real

Preparando el archivo de texto

Hagamos un archivo de texto simple (.txt) y lo nombramos como lista.txt, en ella escribiremos los nombres de nuestra lista en la siguiente manera:

Nombre real de la persona, correo electrónico

Debemos asegurarnos de escribir un usuario por línea de texto

Tecleemos algo de código

Inicie su editor de código favorito, generamos un documento html nuevo y empecemos a escribir código. Lo primero, será abrir el archivo de texto (recuerde tener privilegios adecuados para esto) y pasarlo a una matriz, lo haremos con la función file de php

PHP:
  1. $lines = file('lista.txt');

Vamos a agregrar una linda tabla con los datos que vayamos extrayendo de la lista, de esa manera podremos ver un output al momento que los datos se van enviando. Y mostraremos todo esto dentro de un foreach

PHP:
  1. <table>
  2. <tr>
  3. <td>Nombre</td><td>Correo</td><td>Enviado</td></tr>
  4. <?php
  5.         foreach ($lines as $line_num=>$line) {
  6.             $datos = explode(",", $line);
  7.     ?>     
  8.     <tr>
  9.     <td> <?php echo $datos[0] ?></td>
  10.     <td> <?php echo $datos[1] ?></td>
  11.         <td>Ok</td>

Notemos que la variable datos contiene ahora los datos de cada usuario en forma de array, de manera que la opsición 0 contiene el nombre, y la posición 1 el correo electrónico, la función explode nos permite hacer dicha separación. Ahora, enviaremos los datos por correo, vuelvo a hacer incapie en la necesidad de usar una cuenta de correo valida para que funcione mejor, esto por supuesto, no garantiza que cada cliente de correo interprete nuestro mensaje como spam o no.

PHP:
  1. <?php
  2.         $sendTo = $datos[1]; // El correo del usuario
  3.         $correo_de = "lista@aullamas.com"; // nuestro correo
  4.         $de = "Aoyama"; // Nuestro nombre
  5.         $subject = "Bienvenida a la lista de correo de Licencia Creativa";
  6.         $headers = "MIME-Version: 1.0\n";
  7.         // Importante que el mime sea text/html para que el cliente lo entienda como tal
  8.         $headers .= "Content-type: text/html; charset=iso-8859-1\n";
  9.         $headers .= "From: $de  <$correo_de> \r\n";
  10.         $headers .= "Reply-To: " . $correo_de;
  11.         $message = "<p><img src='http://www.dominio.com/images/imagen.jpg' /></p><p>Como vez, puedes incluir im&aacute;genes tanbi&eacute;n. Y no olvides enviar esta informaci&oacute;n a todos tus amigos y conocidos.</p><p><small>Este es un correo automatizado. No es necesario que respondas al mismo, si deseas mayor informaci&oacute;n escribe a: aoyama@auyamas.com</small></p>";
  12.     mail ($sendTo, $subject, $message, $headers); //la famosa función mail de php hace el envio
  13.     ?>
  14.     </tr>
  15.     <?php     
  16.     } //fin foreach
  17.     ?>
  18.     </table>

Una vez terminado el código, guardemos este documento en una carpeta dentro de nuestra raíz de publicación y lo ejecutamos cuando sea necesario. Finalmente quiero decir que esto es algo muy simple y que hay software que hace ese trabajo de manera más eficiente, también reitero de nuevo la necesidad de no abusar de este tipo de prácticas.

March 07 2008

Internet Explorer 8 Beta 1

Internet Explorer 8

Justo cuando pensabamos que IE7 se quedaría por un buen rato más, la gente del buen billy, nos trae está noticia (que ya de por si andaba circulando por la red), ahora nos llega la primera beta pública de Internet Explorer 8, según palabras del sitio web de Internet Explorer

Internet Explorer 8 will take the web experience beyond the page. Internet Explorer 8 introduces a new way to seamlessly experience the best of the web whether you are a web developer writing to standards or a user discovering a new online service

Si, bueno. Yo no me la creo en realidad. Según el sitio web, las mejoras más "innovadoras" son dos:

  1. Activities: Servicios contextuales que ofreceran alternativas externas, pero relacionadas al sitio que estemos visitando
  2. WebSlices: Una especie de mini-thumbnail (¡oh, sorpresa, Opera ya lo hace!) del sitio que se ofrecerá al visitante para que pueda subscribirse o visitar de forma entera la página

IE8 Beta está disponible para Windows XP, Vista, 2003 Server, Windows Server 2008 y las versiones de 64 bits.

October 29 2007

El autosufrimiento de un diseñador / desarrollador web

Todos hemos oído eso alguna vez, que el diseño debe adaptarse a estándares, que hay que convencer al cliente, que si la usabilidad, que tú código debe ser óptimo y etc. No me quejo de adoptar buenas técnicas y costumbres de diseño y aún de programación que es mi fuerte™, vaya ni siquiera me quejo de tener que soportar a gente sin criterio que no tiene la menor idea de lo que desea, pero que quieren meter las narices en un campo donde ellos son ignorantes. ¡Si señor cliente!, usted que me está leyendo, es un ignorante al respecto de aquello para lo que me contrata, como yo probablemente lo sea de aquello de lo que usted vive, y eso, es lo que equilibra las fuerzas y pone orden y balance al universo (de acuerdo ya exagere).

Ser programador y diseñador a la vez es todo un calvario, porque viene esa recurrente escena donde tienes un tú malo al hombro izquierdo y un tú bueno al lado derecho peleando entre sí, que si eso se vería mejor con un gradiente pero rompería el esquema, que si hay que considerar los colores corporativos, pero hay que ser atrevido e innovador o si el algoritmo de lectura de la base de datos produce salidas con un ancho mayor al de la capa que lo contiene, etc. Uno que se siente detrás y pasa los minutos y quizá las horas sentado, trazando en papel la maqueta inicial del diseño y que pasa por interminables y aburridas reuniones con el cliente para que este termine exigiendo usar el pseudo-diseño que su amigo/primo/sobrino/amigo_pringao_de_turno le hizo, uno que tiene que volver a re-convencer al cliente, y se siente uno como un arcángel luchando contra fuerzas malignas (o como Gordon Freeman destrozando zombies con su crowbar), si es uno mismo quien al final se traiciona, cuando ya tienes casí todo hecho y le das un vistazo al trabajo realizado y entonces te repites a tí mismo... "Pero si apesta a kilometros, ¿cómo pude ser capaz de hacer semejante aberración?"

Y llega el momento cumbre, cuando después de haberte autoflagelado y de hacer y rehacer muchas maquetas, cuando ya tienes la aprobación del cliente; que te sientas otra vez, miras tu diseño, miras la pantalla de tu PC (o mac) y te preguntas.... bueno, ¿y ahora por donde empiezo? y la lucha comienza de nuevo, como todas las interminables luchas entre el bien y el mal, entonces, tomas tu taza de café, le das un sorbo y suspiras mientras tú música favorita suena y te invita a seguir con tu vida, depués de todo, para eso estás aquí, ¿o no?

October 11 2007

Verificando formularios de registro y comentarios en php

Disclaimer: Este es un artículo muy básico, por lo que algunos hardcore programadores y DJSOSO's podrían verlo como juegos de niños, si eres uno de esos, este artículo no es para tí.

Hoy les voy a explicar de una forma muy sencilla, una técnica que utilizan muchos sitios en sus formularios de registro y comentarios para evitar a los spam-bots y cosas similares. Se trata simplemente de obligar al usuario a digitar un número verificador de cuatro cifras generado aleatoriamente, así que, abrimos nuestro editor favorito, y vamos a crear una sencilla función.

PHP:
  1. <?php
  2.     function validador()
  3.     {
  4.         $num = rand(1000,9999);
  5.         return $num;
  6.     }
  7. ?>

Ahora, en cada formulario en el que vayamos a implementar esto, hemos de añadir un poco de código adicional, lo primero será, obviamente notificarle al usuario que tiene que escribir ese valor y de paso explicarle porque debe hacerle, pero también, usaremos un objeto tipo hidden para usarlo del otro lado del formulario. Veamos

PHP:
  1. <?php       
  2.         $n = validador(); //aquí llamamos a nuestra función, no te olvides de hacer el include correspondiente
  3.     echo "<input type='hidden' name='verifica' value='$n' />";
  4. ?>
  5. <p>Verificaci&oacute;n:<strong><?php echo $n ?></strong>. <small>Escriba este valor en la caja de texto</small>
  6. <input type="text" name="verifica_usuario" size="4" maxlength="4" /></p>

Ahora, del otro lado (es decir, cuando el formulario se procesa) simplemente revisamos que no haya quedado vacío el campo y que coincida con los dígitos generados (aquí es donde puedes pensar en AJAX si quieres).

PHP:
  1. <?php
  2. $v = true;
  3. if(strlen(trim($_POST["verifica_usuario"]))>0)
  4. {
  5.      if($_POST["verifica_usuario"]!=$_POST["verifica"])
  6.      {
  7.          $v = false;
  8.          echo "<p>Debe escribir el dígito verificador correcto.</p>";
  9.      }     
  10. }
  11. else
  12. {
  13.       $v = false;
  14.       echo "<p>Debe escribir el dígito verificador.</p>";
  15. }
  16. if($v)
  17. {
  18.      // Aquí se continua con el proceso
  19. }

Por supuesto, esto se puede implementar en un desarrollo propio o hacerle una modificación directa al formulario de comentarios de nuestro blog (sin necesidad de instalar un plug-in).

RSS