¿Problemas con la PC?, MS Fix It Center ¿la solución?

Ya se encuentra activa la beta del programa para reparar errores comunes de Windows. Al ingresar al Portal nos encontraremos con una interfaz simple y con información bien detallada sobre requerimientos y funcionalidades.

Fix it Center ya existía como centro de soluciones a problemas de Windows, pero con herramientas específicas para cada tipo de problema, no en un solo programa o herramienta.

El funcionamiento es por demás simple: descargamos Fix It Center y bastará con hacer click en la solución que queremos aplicar, y el sistema nos guiará paso a paso para que podamos solucionar el problema de forma rápida, sencilla y prácticamente automática.

Uno de los requisitos indispensables es darnos de alta previamente en el servicio de forma gratuita, y elegir si deseamos enviar datos de la configuración de nuestro equipo, en caso de no querer formar parte de los archivos de Microsoft.

Luego de instalar Fix it Center Beta, la aplicación se conectará periódicamente a internet para descargar nuevas soluciones a los problemas de Windows.

Definitivamente y como toda noticia relacionada con Microsoft generará controversia, muchos propondrán otros S.O. como la solución definitiva y a otros la noticia ni les afectará. Lo cierto es que Windows forma parte de la vida informática de la gran mayoria, como asi también es muy cierto que tiene grandes fallas técnicas. Esta herramienta no estará demás.

Saludos y que lo disfruten!

Bookmark and Share

Diversión asegurada, Soul Adventure

Aquí les traigo otro nuevo juego online llamado Soul Adventure, en este caso un juego de ROL ambientado en la época medieval donde deberemos recorrer diferentes mapas, entrenar y comerciar para avanzar en la historia.

Cabe destacar que es un juego que no requiere de ningún tipo de máquina especial, sino que funciona simplemente con una conexión a internet.

Link: http://souladventure.oskoi.com/

Saludos y que lo disfruten!

Bookmark and Share

Extendiendo PHPMailer

Como habiamos visto en el artículo Envío de email con PHP, PHPMailer, esta clase facilita mucho el envio de mails con PHP.

Como desarrollador he adaptado un poco esta libreria a mis necesidades, como por ejemplo hacer debug sin necesidad de enviar el mail (ya sea por no tener un servidor SMTP local o para no tener que esperar a que se envie y llegue), o formatear los mails salientes con el "estilo" de la empresa.

Para esto les traigo el código base para que puedan usarlo, adaptarlo a sus necesidades o mejorarlo según convenga.

Primero incluyo mi archivo de configuración en el que tengo datos de acceso a base, contantes del sistema, etc. Y también incluyo mi clase para consulta a base de datos y la libería PHPMailer:

include_once("../../conf/archivo_configuracion.php");

include_once("class.mysql.php");
include_once("class.phpmailer.php");

Luego creo mi clase extendiendo con la de PHPMailer y seteo algunas variables de clase:

class Mensajeria extends PHPMailer {
var $debugg   = TRUE; // cambiando este valor paso a modo debug
var $para               = NULL;
var $de                 = SITIO_EMAIL;
var $asunto             = "";
var $cuerpo             = "";
var $contenido          = "";
var $copia  = "";
var $copiaO  = "";
}

Luego creo algunos métodos de mi clase, como por ejemplo para el envio del mensaje. Como se puede ver, valido si estoy en modo de debug para imprimir en pantalla o para enviar el mail de modo convencional:

function enviar( $debug = FALSE ) {
 $this->Subject        = $this->asunto;
 $this->estilar_cuerpo( $this->contenido );
 if($debug){
   echo "De:   " . $this->de[1] . " (" . $this->de[0] . ")
";
   echo "Para: " . $this->para[1] . " (" . $this->para[0] . ")
";
   echo "

Asunto: " . $this->asunto . "

"; echo $this->cuerpo; }else{ $this->Body = $this->cuerpo; $this->From = $this->de[0]; $this->FromName = $this->de[1]; $this->AddAddress( $this->para[0], $this->para[1] ); $this->send(); $this->ClearAddresses(); } }

Con el siguiente método formateamos nuestro mail, es una plantilla HTML que podemos crear a nuestro gusto. Sólo debemos pasarle como parámetro el cuerpo del mail y se encargará de colocarlo en nuestro maquetado.

function estilar_cuerpo($contenido){
 ob_start();
 
 echo '
OSKOI

 

'; $this->cuerpo = ob_get_contents(); ob_end_clean(); }

El siguiente método es muy útil y nos permite reemplazar en el texto del primer parámetro el valor correspondiente almacenado en el array del segundo parámetro. Lo utilizo ara personalizar los emails, por ejemplo tengo el siguiente mensaje de plantilla:

Hola [nombre_completo]!!, este es un mail de prueba.
Saludos de parte de [nombre_empresa].

Entonces debería tener un array con los valores correspondientes para cada campo entre corchetes:

$aDatos['nombre_completo'] = "Pepito";
$aDatos['nombre_empresa'] = "Pepito S.A.";

Y al utilizar el método el resultado sería:

Hola Pepito!!, este es un mail de prueba.
Saludos de parte de Pepito S.A..

Este es el método en cuestión:

function procesar_etiquetas( $texto, $vars ) {
    foreach ( $vars AS $clave => $valor ) {
        $texto    = str_replace( "[".$clave."]", $valor, $texto );
    }

    return $texto;
}

Con esto ya tenemos todo listo para crear nuestro metodos de clase para cada caso, por ejemplo podriamos tener uno para contactar a nuestros clientes:

function contactarCliente($id_cliente){

$db = new db();

$query = "SELECT * FROM `mensajeria` WHERE `constante` = 'CONTACTAR_CLIENTE'";

$mensaje = $db->getRow($query, "NaN", ARRAY_A);

$query = "SELECT CONCAT(nombre, ' ', apellido) AS nombre_completo, email FROM `clientes` WHERE `id` = $id_cliente";

$datos = $db->getRow($query, "NaN", ARRAY_A);

$datos['asunto'] = $this->procesar_etiquetas( $mensaje["asunto"],  $datos );

$this->de             = array( SITIO_EMAIL, SITIO_NOMBRE );
$this->para           = array( $datos['email'], $datos['nombre_completo'] );
$this->asunto         = "Contacto desde " . SITIO_NOMBRE;
$this->contenido      = $this->procesar_etiquetas( $mensaje["mensaje"],  $datos );
$this->enviar($this->debugg);  

return true;

}

Saludos y que lo disfruten!

Bookmark and Share

Envio de email con PHP, PHPMailer

PHPMailer es una excelente librería desarrollada en PHP que expande y facilita el envio de mails con este lenguaje. Permite el envio de archivos adjuntos, soporta múltiples codificaciones, acepta imágenes embebidas, entre otras funcionalidades.

Para comenzar a utilizarla debemos descargarla desde la Web Oficial, en la sección de descargas veremos las diferentes versiones disponibles.

Une vez que lo tengamos entre varios archivos (demos, tutoriales, etc) deberemos elegir entre class.phpmailer.php para el envío de correo y class.smtp.php para enviar correo mediante servidores SMTP. Incluimos el archivo que corresponda en un nuevo documento e instanciamos la clase:

require("class.phpmailer.php");
$mail = new PHPMailer();

Con esto ya estamos listo para usar las diferentes funcionalidades, como por ejemplo setear el remitente, destinatarios, copias y asunto del mensaje:

$mail->From = "remitente@email.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Asunto del correo";
$mail->AddAddress("destino1@correo.com","Nombre 01");
$mail->AddAddress("destino2@correo.com","Nombre 02");
$mail->AddCC("usuariocopia@correo.com");
$mail->AddBCC("usuariocopiaoculta@correo.com");

Como mencionamos más arriba podemos enviar el mensaje como HTML, y además podemos enviar un texto alternativo para el caso que el cliente de correo del destinatario no soporte este formato:

$body  = "Hola  estoy probando PHPMailer.< br />";
$body .= "Este es el cuerpo del mensaje.< br />";
$body .= "Saludos";
$mail->Body = $body;
$mail->AltBody = "Hola estoy probando PHPMailer\n\nSaludos"; // texto alternativo

Yendo un poco más a fondo podriamos agregar un Archivo Adjunto, por lo que debemos valernos del método AddAttachment() y enviarle 2 parámetros, el primero la ruta al archivo a adjuntar y el segundo el nombre con el que se mostrará al destinatario:

$mail->AddAttachment("_img/imagen.jpg", "foto.jpg");
$mail->AddAttachment("_content/zipeado.zip", "demo.zip");

Con esto tenemos todo listo, seteamos el remitente, destinatario y asunto. Creamos el cuerpo en HTML con un texto alternativo en caso de que el cliente de correo no lo soporte. Y adjuntamos 2 archivos, una imágen y un .zip. Sólo restaría enviar el mail y esto se hace con el método send(). Nuestro código completo quedaría así:

require("class.phpmailer.php");
$mail = new PHPMailer();

$mail->From = "remitente@email.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Asunto del correo";
$mail->AddAddress("destino1@correo.com","Nombre 01");
$mail->AddAddress("destino2@correo.com","Nombre 02");
$mail->AddCC("usuariocopia@correo.com");
$mail->AddBCC("usuariocopiaoculta@correo.com");

$body  = "Hola  estoy probando PHPMailer.< br />";
$body .= "Este es el cuerpo del mensaje.< br />";
$body .= "Saludos";
$mail->Body = $body;
$mail->AltBody = "Hola estoy probando PHPMailer\n\nSaludos"; // texto alternativo

$mail->AddAttachment("_img/imagen.jpg", "foto.jpg");
$mail->AddAttachment("_content/zipeado.zip", "demo.zip");

$mail->Send();

Saludos y que lo disfruten!

Bookmark and Share

USB 3.0, la nueva generación

El USB que tanto conocemos y utilizamos fué creado en 1996 y desde entonces ha pasado por varias etapas hasta llegar a lo que el presiente del Foro de Aplicaciones USB presentó como el llamado Super Speed USB en la feria CES de Las Vegas.

Los dispositivos USB se clasifican en cuatro tipos según su velocidad de transferencia de datos:

  • Baja velocidad (1.0): Es utilizado en su mayor parte por dispositivos de interfaz humana como los teclados y los mouses.
  • Velocidad completa (1.1): Ésta fue la más rápida antes de la especificación USB 2.0, y muchos dispositivos fabricados en la actualidad trabajan a esta velocidad.
  • Alta velocidad (2.0): Está presente casi en el 99% de las PCs actuales. El cable USB 2.0 dispone de cuatro líneas, un par para datos, una de corriente y una de toma de tierra.
  • Super alta velocidad (3.0): Esta especificación será diez veces mas veloz que la anterior 2.0 duplicando las lineas destinadas al envío y recepción de datos. El USB 3.0, además, es más eficiente en el consumo energético, que reduce en un tercio y es compatible con periféricos basados en la anterior generación.

Saludos y que lo disfruten!

Bookmark and Share