Cursos gratuitos sobre habilidades digitales


Si quiere mejorar sus habilidades digitales o aprender nuevas herramientas para su desarrollo personal o profesional Universitas Telefónica y Fundación Telefónica ofrecen constantemente muchos  MOOC online y gratuitos de carácter flexible sobre habilidades digitales y nuevas herramientas para el desarrollo personal o profesional.

La temática de casi todos estos cursos, que no requieren de conocimientos previos, es muy diversa y la duración varía entre 10 horas  hasta  8 semanas, pudiendo recibir certificado de superación del curso.

Algunos de los cursos propuestos gratuitos mas interesantes  son  «Conectando el futuro con Fibra Óptica» ,Introducción a la programación. Descubre el lenguaje de la era digital» (ambos  ya van por su tercera edición ) o, «Machine learning» ,»Gestión de proyectos con metodologías Ágiles y enfoques Lean» entre otros , pero constantemente se están proponiendo nuevos cursos desde la  plataforma  .

Veamos un resumen de algunos de estos cursos gratuitos que a día de hoy podemos empezar  a cursar:

 

Conectando el futuro con Fibra Óptica

Veremos qué es y cómo funciona la fibra óptica, como se realiza el despliegue en la ciudad, y mo llegamos hasta los edificios y la tipología de los mismos, la instalación en domicilio de cliente.
Aprenderemos tambien  a realizar las medidas necesarias para asegurar el correcto funcionamiento de la red, así como localizar las posibles incidencias y la forma de solucionarlas.
Conoceremos asimismo los tipos de cables que se van a utilizar dependiendo del tipo de instalación y una correcta identificación de las fibras.
Por  ultimo tambien aprenderemos a utilizar correctamente las herramientas específicas de fibra óptica.

La duración estimada es de 6 semanas (30 horas de duración estimadas) y la fecha tope para apuntarnos a este interesante curso es el 18 de Abril

Enlace al curso  aqui

 

Machine learning

Cada vez vemos más aplicaciones de esta técnica a nuestro alrededor, incluso en actos tan cotidianos como ir a un cajero o llamar a un taxi. Pero ¿nos hemos  preguntado alguna vez cómo funciona el aprendizaje automático? ¿Qué informaciones extrae de nuestros datos?

En este curso introductorio de Empleo Digital, una iniciativa de Fundación Telefónica,podemos  ver algunos casos prácticos que nos ayudarán a responder a estas preguntas.

Entender los conceptos en que se basa el Machine Learning está al alcance de todos y con este curso podemos satisfacer nuestra  curiosidad entrando  en el fascinante mundo de las máquinas que aprenden por sí mismas.

La duración del curso gratuito es de   4 semanas (20 horas de estudio estimadas) y  el plazo tope de inscripción es el  18 de Abril de 2017

Enlace al curso: aqui

 

Introducción a la programación. Descubre el lenguaje de la era digital

Este curso está diseñado para gente que nunca se había planteado programar, pero quiere empezar. Así que no se asuste , si ha llegado hasta aquí es que ya tiene interés y este curso es para usted.

Con esta iniciación básica se pueden dar los  primeros pasos en el lenguaje de la era digital pudiendo  comprobar que comenzar a programar es sencillo.

 

La duración prevista del curso es de 6 semanas (30 horas estimadas de estudio) y el plazo de inscripcion tope es el 13 de Marzo, asi quesi  le interesa  no lo dude en apuntarse cuanto antes

Link al curso aqui

 

Gestión de proyectos con metodologías Ágiles y enfoques Lean.

En este curso se explica  qué son las metodologías ágiles, el contexto en el que surgen y su aplicación a los proyectos actuales. ayudando a comprender sus diferencias con respecto a otros enfoques más tradicionales para poder ver qué ventajas puede tener su aplicación. Otro de los ejes del curso es conocer qué es Scrum en profundidad, sus roles, artefactos y reuniones más importantes asi como conocer qué es Kanban y su comparación con Scrum

También se presentan algunos métodos de estimación más usados en estos enfoques así como  la opinión de expertos en la materia.

En este  un curso de Fundación Telefónica, todo el que complete el 100% del curso recibirá de forma gratuita el certificado de superación del curso.

 

La  duración estimada del curso es de  8 semanas (40 horas estimadas de estudio) y el plazo tope es el 28 de Marzo de 2017

Link al curso:  aqui

 

 

 

 

Los  itinerarios de los cursos “Introducción al Machine Learning”, “Gestión de proyectos con metodologías ágiles” e “Introducción a la programación”– se enmarcan en el programa de Empleabilidad de Fundación Telefónica, que tiene como objetivo mejorar las capacidades y competencias digitales de los jóvenes en la nueva realidad del mercado laboral para que tengan más oportunidades de empleo, desarrollo profesional y personal. Este  programa trabaja sobre dos ejes: la Empleabilidad para la sociedad digital y el Emprendimiento social.

Como nota informativa  ,la Fundación Telefónica formó y preparó a 240.000 jóvenes en 2016 en Europa y América Latina.

Si necesita ayuda para inscribirse, ofrecen ayuda contactando  con el soporte técnico de MiríadaX  o en caso de duda sobre los programas mencionados u otros no comentados en este post,  escribiendo a  [email protected]

Cómo enviar correos desde Android con Apache Commons


Trabajando con Android, muchos buscamos  enviar mensajes de correo electrónico usando un servidor SMTP, utilizando autenticación y cifrado, dentro de  de la propia aplicación android de forma que sea completamente transparente para el usuario.

Por desgracia javax.mail en Android no es una buena opción, ya que depende de las clases awt (problemas por la herencia) y no siempre funciona:no en vano ,de hecho algunas personas han tratado de adaptar la librería dado  que no ser requiere todo el paquete awt , pero lamentablemente han tenido poco éxito con eso; !y eso sin mencionar a quienes que refactorizando javax.mail para Android  (que lleva muchos  años, sin ningún mantenimiento)!.

Apache Commons es un conjunto de proyectos de Apache Software Foundation, que originalmente formaron parte de Jakarta Project. El propósito de estos proyectos consiste en proveer componentes de software Java reutilizables, en código abierto. Según su grado de madurez y actividad, los proyectos se agrupan en las categorías: proper, sandbox o dormant.

Otra opción mas pragmática pues  es usar Apache Commons ,puesto que la comunidad ha añadido un SMTPSClient y un AuthenticatingSMTPClient para el cliente SMTP original ,el cual con la  aplicación de un pequeño parche  para SSL y autenticación, se puede incrustar esta biblioteca en su aplicación para Android sin necesitar dependencias transitivas para enviar correo mediante la autenticación sobre una capa segura.

Autenticación SMTP y STARTTLS

STARTTLS es una extensión a los protocolos de comunicación de texto plano, que ofrece una forma de mejorar desde una conexión de texto plano a una conexión cifrada (TLS o SSL) en lugar de utilizar un puerto diferente para la comunicación cifrada.

El puerto utilizado para  envíos de correos es generalmente 25 o el puerto 587 alternativo por lo que lo que se trata es de conectar al servidor SMTP en una conexión simple, se piden los comandos disponibles, y si se soporta STARTTLS,se  usa ,y el resto de la comunicación está cifrado.

Ahora tomemos el ejemplo de gmail, ya que el servidor es  smtp.gmail.com , como soporta autenticación y STARTTLS  podemos enviar fácilmente correos si importamos la libreria Apache Commons

 

Un ejemplo de código funcional que podemos probar desde Android Studio es el siguiente:

com.google.android.gms.appindexing.Action;
import com.google.android.gms.appindexing.AppIndex;
import com.google.android.gms.appindexing.Thing;
import com.google.android.gms.common.api.GoogleApiClient;
import org.apache.commons.net.smtp.AuthenticatingSMTPClient;

import org.apache.commons.net.smtp.SMTPClient;

import org.apache.commons.net.smtp.SMTPReply;

import org.apache.commons.net.smtp.SimpleSMTPHeader;  

  public void sendEmail()

{ String hostname = «smtp.gmail.com»;

int port = 587; String password = «xxxxxxxxx»;

// aqui necesitamos la pwd de al cuenta de gmail

String login = «[email protected]»;

//aqui necesitamos la cuenta de gmail desde //la que enviaremos los email desde la app

String from = login;

//aqui ponemos el nombre del correo de envío

// es el enviante

String subject = «subject«;

//asunto del correo

String text = «message»;

//texto del correo try

{ AuthenticatingSMTPClientclient = new AuthenticatingSMTPClient();

String to = «[email protected]»;

//destino del correo

// optionally set a timeout to have a faster

//feedback on errors client.setDefaultTimeout(10 * 1000);

// you connect to the SMTP server client.connect(hostname, port);

// you say ehlo  and you specify the host you are connecting from, //could be anything client.ehlo(«localhost»);

// if your host accepts STARTTLS, we’re good everything will be encrypted,

// otherwise we’re done here

if (client.execTLS())

{ client.auth(AuthenticatingSMTPClient.AUTH_METHOD.LOGIN, login, password);

checkReply(client); client.setSender(from);

checkReply(client);

client.addRecipient(to);

checkReply(client);

Writer writer = client.sendMessageData();

if (writer != null)

{ SimpleSMTPHeader header = new SimpleSMTPHeader(from, to, subject); writer.write(header.toString()); writer.write(text); writer.close();

if (!client.completePendingCommand())

{

// failure

throw new Exception(«Fallo al  enviar email » + client.getReply() + _ client.getReplyString()); } }

else

{ throw new Exception(«Fallo al enviar email » + client.getReply() + _ client.getReplyString()); } }

else

{ throw new Exception(«STARTTLS no fue aceptado » + client.getReply() +_ client.getReplyString());

} }

catch (Exception e) {

// some other problem

Toast.makeText(MainActivity.this, «Problema enviado email.», _ Toast.LENGTH_SHORT).show(); } }

 

private static void checkReply(SMTPClient sc) throws Exception

{ if (SMTPReply.isNegativeTransient(sc.getReplyCode()))

{ throw new Exception(«Transient SMTP error » + sc.getReply() + sc.getReplyString()); }

else if (SMTPReply.isNegativePermanent(sc.getReplyCode()))

{ throw new Exception(«Permanent SMTP error » + sc.getReply() + sc.getReplyString()); } }

//* * ATTENTION: This was auto-generated to implement the App Indexing API. * // See https://g.co/AppIndexing/AndroidStudio for more information. */

public Action getIndexApiAction()

{ Thing object = new Thing.Builder() .setName(«Main Page»)

// TODO: Define a title for the content shown.

// TODO: Make sure this auto-generated URL is correct.

.setUrl(Uri.parse(«http://[ENTER-YOUR-URL-HERE]»)) .build();

return new Action.Builder(Action.TYPE_VIEW) .setObject(object) ._ setActionStatus(Action.STATUS_TYPE_COMPLETED) .build(); }

 

@Override public void onStart()

{ super.onStart();

// ATTENTION: This was auto-generated to implement the App Indexing API.

// See https://g.co/AppIndexing/AndroidStudio for more information. client2.connect(); AppIndex.AppIndexApi.start(client2, getIndexApiAction()); }

@Override public void onStop()

{ super.onStop();

// ATTENTION: This was auto-generated to implement the App Indexing API

. // See https://g.co/AppIndexing/AndroidStudio for more information. AppIndex.AppIndexApi.end(client2,

getIndexApiAction());

client2.disconnect(); }

No hay mucho que añadir aquí, por supuesto, la manipulación de excepciones podría ser optimizado si utiliza sus propias clases de excepción y por ejemplo tanto el login como el pwd de gmail  pueden ser capturados en los ajustes de la aplicación para personalizarlo a voulntas.

Autenticación SMTP y SSL con Commons Net

Algunos servidores SMTP están configurados para aceptar sólo SSL  por lo  hay que asegurar la comunicación antes de emitir cualquier comando al servidor siendo generalmente el puerto usado el 465.

Por ejemplo  LaPoste.net oferece cuentas gratuitas de correo electrónico ofrecidas por la publicación francesa, asi que enviar correos desde  ahi seria similar a esto:

 public void sendEmail() throws Exception {  
    String hostname = "smtp.laposte.net";
    int port = 465;
    String password = "password";
    String login = "firstname.lastname";
    String from = login + "@laposte.net";
    String subject = "subject" ;
    String text = "message";
    // this is the important part : you tell your client to connect using 
    //SSL right away
   AuthenticatingSMTPClient client = new AuthenticatingSMTPClient("TLS",true);
    try {
      String to = "[email protected]";
      // optionally set a timeout to have a faster feedback on errors
      client.setDefaultTimeout(10 * 1000);
      client.connect(hostname, port);
      client.ehlo("localhost");
      client.auth(AuthenticatingSMTPClient.AUTH_METHOD.LOGIN, login, password);
      checkReply(client);
     client.setSender(from);
     checkReply(client);
      client.addRecipient(to);
      checkReply(client);
      Writer writer = client.sendMessageData();

      if (writer != null) {
        SimpleSMTPHeader header = new SimpleSMTPHeader(from, to, subject);
        writer.write(header.toString());
        writer.write(text);
        writer.close();
        if(!client.completePendingCommand()) {// failure
          throw new Exception("Failure to send the email "+ client.getReply() +_
 client.getReplyString());
        }
      } else  
{
        throw new Exception("Failure to send the email "+ client.getReply() + _
client.getReplyString());
      }

    } catch (Exception e) {
        throw e;
    } finally {
        client.logout();
        client.disconnect();
    }
  }

No repitimos el método checkReply () aquí, ya que es el mismo para ambos fragmentos de código

Usted habrá notado que el uso de SSL de inmediato significa que usted no tiene que buscar la respuesta execTls () (de hecho no funcionará si lo hace).

Dependencias

Eso es todo; Si desea hacer que estos ejemplos funcionen en su entorno, debe descargar la liberia  apache commons net 3.3 jar    y agregar el jar apache commons net 3.3 a su proyecto

 

 

coomons