Aprender código Morse

.- .--. .-. . -. -.. . .-. / -.-. -.. .. --. --- / -- --- .-. ... . .-.-.

Código Morse, publicación de 1922. Wikipedia

Dicen que el saber no ocupa lugar, menos en la nube que si ocupa y te puede costar dinero.
De esta nueva realidad hemos aprendido que nuestra casa es muy pequeña y que siempre podemos aprender, por ejemplo un idioma nuevo.
Esperemos que no, pero todo indica que nos encontremos con una segunda ola y nos volvamos a confinar. Si este es el motivo o te encuentras en la parada del metro y no sabes que hacer, te dejo esta web de Google donde podrás aprender a utilizar el código morse, y practicar vocabulario en ingles. Puedes usarlo en el navegador y con el teclado para smartphone Gboard Android
Si queréis habilitarlo en vuestros telefono Android, deberéis seguir estos pasos. En IOS deberemos añadir el idioma y añadiendolo a nuestro teclado.


Pero en esta página web, si disponemos de tiempo y somos constantes aprenderemos este idioma, que aunque en muy poquitos sitios se utiliza, nos puede resultar útil si nos ataca una raza aliena que controla todos los satélites pero no controla las ondas de radio de larga distancia, y con el cual organizaremos un ataque a nivel mundial y sincronizado. Solo si eres norteamericano 👽👾😊

Morse Typing Trainer

Practicando código Morse

Nuestro amor es como la llovizna que cae quedamente, pero desborda el río


Nuestro amor es como la llovizna que cae quedamente, pero desborda el río.   Proverbio africano

Nuestro amor es como la llovizna que cae quedamente, pero desborda el río.
Proverbio africano

Los diseñadores del cohete Apollo y los ingenieros de la NASA


Los diseñadores del cohete Apollo y los ingenieros de la NASA de Houston y Sunnyvale crecieron en los 1930 y los 1940 soñando con Buck Rogers y las aventuras más allá de la Tierra de Amazing Stories. Cuando esta generación aeroespacial fue lo suficientemente mayor, decidió construir esos sueños con metal.   Douglas Coupland

Los diseñadores del cohete Apollo y los ingenieros de la NASA de Houston y Sunnyvale crecieron en los 1930 y los 1940 soñando con Buck Rogers y las aventuras más allá de la Tierra de Amazing Stories. Cuando esta generación aeroespacial fue lo suficientemente mayor, decidió construir esos sueños con metal.   

Douglas Couplannd



Desde luego, existen muchos problemas relacionados con la vida, entre los cuales algunos de los más famosos son: ¿Por qué nacemos? ¿Por qué morimos?


Desde luego, existen muchos problemas relacionados con la vida, entre los cuales algunos de los más famosos son: ¿Por qué nacemos? ¿Por qué morimos? ¿Por qué queremos pasar la mayor parte de la existencia llevando relojes de lectura directa?    La Guía del Autoestopista Galáctico  Douglas Adams

Desde luego, existen muchos problemas relacionados con la vida, entre los cuales algunos de los más famosos son: ¿Por qué nacemos? ¿Por qué morimos? ¿Por qué queremos pasar la mayor parte de la existencia llevando relojes de lectura directa?    
La Guía del Autoestopista Galáctico  Douglas Adams

Lo importante no es saber, sino tener el teléfono del que sabe.

Lo importante no es saber, sino tener el teléfono del que sabe.   Les Luthiers



Lo importante no es saber, sino tener el teléfono del que sabe.


Les Luthiers

Todas las guerras son santas, os desafio a que encontreis un beligerante que no crea tener el cielo de su parte.

Todas las guerras son santas, os desafio a que encontreis un beligerante que no crea tener el cielo de su parte.   Jean Anouilh



Todas las guerras son santas, os desafio a que encontreis un beligerante que no crea tener el cielo de su parte.


Jean Anouilh

Como enviar correo electronico con archivo adjunto en PHP

Como enviar un correo electrónico con archivos adjuntos con PHP 📨. 
Puede ser que necesitemos crear una función para enviar un correo electrónico con un archivo adjunto, como respuesta a un formulario o para realizar publicaciones en otros servidores.
Si utilizamos una plataforma que en al que podemos programar y ejecutar PHP debemos asegurarnos que se encuentre instalado sendmail
Si somos el administrador de nuestro propio servidor, podremos instalarlo desde el terminal:
sudo apt-get install sendmail
Si somos invitados en el servidor, lanzaremos un script para comprobar si podemos utilizar la función mail:

<?php
    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL );    //Comprobaremos si ha sido enviado o no
    $from = "TU CORREO ELECTRONICO"; //La dirección de correo desde que la enviamos
    $to = "DESTINATARIO";    //Dirección de correo a la que enviamos el mail
    $subject = "Probando PHP mail";    //Encabezado del correo
    $message = "PHP mail funciona correctamente";    //El mensaje
    $headers = "From:" . $from;    //Cabecera que dejamos tal cual
    mail($to,$subject,$message, $headers);    //Enviamos el correo
    echo "The email message was sent.";    //Confirmamos que el correo ha sido enviado

?>

Si hemos recibido el correo, podremos continuar con la programación de nuestra función.


//Recipiente
$to = 'DESTINATARIO';     //A quien le enviamos nuestro correo

//remitente del correo
//Desde que correo le envamos y quien será el destinatario de la respuesta si lo hubiera
$from = 'NUESTRO CORREO ELECTRONICO';
$fromName = 'UN NOMBRE, O NICK DESCRIPTIVO';    //Quienes somos o nuestra organización

//Asunto del email
//Utilizamos la función utf8_decode() para que nos reconozca las tildes y la ñ, entre otros caracteres
$subject = utf8_decode('ASUNTO DEL CORREO'); 

//Ruta del archivo adjunto
$file = 'DIRECCIÓN GLOBAL DEL ARCHIVO QUE VAMOS A ENVIAR';

//Contenido del Email
//La función htmlentities() nos convertira las tildes ñ y caracteres especiales en etindades HTML
$htmlContent = htmlentities('CONTENIDO DEL CORREO CODIFICADO EN HTML'); 

//Encabezado para información del remitente
$headers = "De: $fromName"." <".$from.">";

//Limite Email
$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

//Encabezados para archivo adjunto 
$headers .= "\n MIME-Version: 1.0 \n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\""; 

//límite multiparte
$message = "--{$mime_boundary}\n" . "Content-Type: text/html; charset=\"UTF-8\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $htmlContent . "\n\n"; 

//preparación de archivo
if(!empty($file) > 0){
    if(is_file($file)){
        $message .= "--{$mime_boundary}\n";
        $fp =    @fopen($file,"rb");
        $data =  @fread($fp,filesize($file));
        @fclose($fp);
        $data = chunk_split(base64_encode($data));
        $message .= "Content-Type: application/octet-stream; name=\"".basename($file)."\"\n" . 
        "Content-Description: ".basename($file)."\n" .
        "Content-Disposition: attachment;\n" . " filename=\"".basename($file)."\"; size=".filesize($file).";\n" . 
        "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
    }
}
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $from;

//Enviar EMail
$mail = @mail($to, $subject, $message, $headers, $returnpath); 

Esta función requiere mucho tiempo de ejecución y no es recomendable para el envio masivo de correos electronicos.