Cómo configurar Jupyter Notebook con Python 3 en Ubuntu 18.04


Vamos a ver como a configurar Jupyter Notebook en un maquina con Ubuntu 18.04, y aprender a conectarse al Notebook y a utilizarlo. Jupyter Notebooks (o simplemente Notebooks) es un conjunto de documentos producidos por la aplicación Jupyter Notebook, la cual contiene tanto elementos de código icomo de texto enriquecido (párrafos, ecuaciones, cifras y enlaces, entre otros) que ayudan a presentar y compartir la investigación que puede reproducirse.

Al final de esta guía, podrá ejecutar código de Python 3 usando un Jupyter Notebook en ejecución.

Configurar Python

Para iniciar el proceso, instalaremos las dependencias que necesitamos para nuestro entorno de programación de Python desde los repositorios de Ubuntu. Ubuntu 18.04 viene con Python 3.6 previamente instalado. Usaremos el administrador de paquetes de Python pip para instalar componentes adicionales más tarde.

Necesitaremos primero actualizar el índice de paquetes local apt y luego descargaremos e instalaremos los paquetes:

sudo apt update

A continuación, instale pip y los archivos de encabezado de Python, utilizados por algunas dependencias de Jupyter:

sudo apt install python3-pip python3-dev

Ahora podemos proceder a configurar un entorno virtual de Python en el que instalaremos Jupyter.

Crear un entorno virtual de Python para Jupyter

Ahora Python 3, sus archivos de encabezado y pip están listos para comenzar, podemos crear un entorno virtual de Python para administrar nuestros proyectos. Instalaremos Jupyter en este entorno virtual.

Para ello, primero necesitaremos acceso al comando virtualenv, que podemos instalar con pip.

Actualice pip e instale el paquete escribiendo lo siguiente:

sudo -H pip3 install --upgrade pip
sudo -H pip3 install virtualenv

El indicador -H garantiza que la política de seguridad defina la variable de entorno home como el directorio de inicio del usuario de destino.

Con virtualenv ya instalado, podemos comenzar a crear nuestro entorno. Cree un directorio en el que podamos guardar los archivos de nuestro proyecto y posiciónese en él: Daremos a este directorio el nombre my_project_dir, pero deberá usar un nombre que sea significativo para usted y para el trabajo que está desarrolle.

mkdir ~/my_project_dir
cd ~/my_project_dir

En el directorio del proyecto, crearemos un entorno virtual de Python. A los efectos de este tutorial, le daremos el nombre my_project_env, pero debería asignarle uno que se relacione con su proyecto.

virtualenv my_project_env

Con esto, se creará un directorio llamado my_project_env dentro de su directorio my_project_dir. Dentro de este, se instalarán una versión local de Python y una versión local de pip. Podemos usar esto para instalar y configurar un entorno aislado de Python para Jupyter.

Antes de instalar Jupyter, debemos activar el entorno virtual. Puede hacerlo escribiendo lo siguiente:

source my_project_env/bin/activate

Su línea de comandos cambiará para indicar que ahora realizará operaciones en un entorno virtual de Python. Tendrá un aspecto similar al siguiente: (my_project_env)[email protected]:~/my_project_dir$.

Con esto, estará listo para instalar Jupyter en este entorno virtual.

Instalar Jupyter

Una vez activado su entorno virtual, instale Jupyter con la instancia local de pip.

Nota: Cuando se active el entorno virtual (cuando (my_project_env) se encuentre al inicio de su línea de comandos), use pip en lugar de pip3, incluso si emplea Python 3. La copia del entorno virtual de la herramienta siempre se llama pip, independientemente de la versión de Python.

pip install jupyter

En este punto, habrá instalado con éxito todo el software necesario para ejecutar Jupyter. Ahora podremos iniciar el servidor de Notebook.

Ejecutar Jupyter Notebook

Ya dispone de todo lo que necesita para ejecutar Jupyter Notebook. Para ejecutarlo, introduzca el siguiente comando:

jupyter notebook

Se mostrará un registro de las actividades de Jupyter Notebook en el terminal. Cuando se ejecuta Jupyter Notebook, este funciona en un número de puerto específico. Normalmente, el primer notebook que ejecute usará el puerto 8888. Para verificar el número de puerto específico en el que se ejecuta Jupyter Notebook, consulte el resultado del comando utilizado para iniciarlo:

Output[I 21:23:21.198 NotebookApp] Writing notebook server cookie secret to /run/user/1001/jupyter/notebook_cookie_secret
[I 21:23:21.361 NotebookApp] Serving notebooks from local directory: /home/sammy/my_project_dir
[I 21:23:21.361 NotebookApp] The Jupyter Notebook is running at:
[I 21:23:21.361 NotebookApp] http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72
[I 21:23:21.361 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[W 21:23:21.361 NotebookApp] No web browser found: could not locate runnable browser.
[C 21:23:21.361 NotebookApp]

    Copy/paste this URL into your browser when you connect for the first time,
    to login with a token:
        http://localhost:8888/?token=1fefa6ab49a498a3f37c959404f7baf16b9a2eda3eaa6d72

Si ejecuta Jupyter Notebook en una computadora local (no en un servidor), puede dirigirse a la URL que se muestra para conectarse a Jupyter Notebook. Si ejecuta Jupyter Notebook en un servidor, deberá establecer conexión con este usando túneles SSH.

Usar Jupyter Notebook

Si Jupyter Notebook aún no está en ejecución, inícielo con el comando jupyter notebook.

Con esto, debería establecer conexión con este usando un navegador web. Jupyter Notebook es una herramienta muy poderosa que dispone de muchas características. En esta sección se mostrarán algunas de las características básicas para que comience a usar el Notebook. Jupyter Notebook mostrará todos los archivos y las carpetas en el directorio desde el que se ejecuta. Por ello, cuando trabaje en un proyecto asegúrese de iniciarlo desde el directorio del proyecto.

Para crear un nuevo archivo de Notebook, seleccione New > Python 3 en el menú desplegable que se encuentra en la parte superior derecha:

Crear un nuevo notebook de Python 3

Con esto se abrirá un Notebook. Ahora podemos ejecutar el código de Python en la celda o cambiar la celda a lenguaje de marcado. Por ejemplo, cambie la primera celda para aceptar el lenguaje de marcado haciendo clic en Cell > Cell Type > Markdown en la barra de navegación de la parte superior. Con esto, podremos escribir notas usando el lenguaje de marcado e incluso incluir ecuaciones escritas en LaTeX disponiéndolas entre los símbolos de $$. Por ejemplo, escriba lo siguiente en la celda después del cambio a lenguaje de marcado:

# First Equation

Let us now implement the following equation:
$$ y = x^2$$

where $x = 2$

Para convertir el lenguaje de marcado en texto enriquecido, presione CTRL + ENTER. Deberían aparecer los siguientes resultados:

Resultados de lenguaje de marcado

Puede utilizar las celdas de lenguaje de marcado para crear notas y documentar su código. Implementaremos esa ecuación e imprimiremos el resultado. Haga clic en la celda superior y presione ALT+ENTER para añadir una celda debajo de esta. Ingrese el código siguiente en la nueva celda.

x = 2
y = x**2
print(y)

Para ejecutar el código, presione CTRL+ENTER. Obtendrá los siguientes resultados:

Resultado de la primera ecuación

Ahora podrá importar módulos y usar el Notebook como lo haría con cualquier otro entorno de desarrollo de Python.

A partir de aquí, puede iniciar un proyecto de análisis y visualización de datos o por ejemplo ,si está interesado en abordar el tema en mayor profundidad, puede investigar sobre Visualización y pronóstico de series de tiempo.

Como ejemplo , en las lineas siguientes mostramos una ejecución de los comandos anteriormente vistos:

[email protected]:~$ sudo apt install python3-pip python3-dev
[sudo] contraseña para carlos: 
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
python3-dev ya está en su versión más reciente (3.8.2-0ubuntu2).
python3-pip ya está en su versión más reciente (20.0.2-5ubuntu1.5).
Los paquetes indicados a continuación se instalaron de forma automática y ya no son necesarios.
  distro-info libfprint-2-tod1 libllvm9
Utilice «sudo apt autoremove» para eliminarlos.
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 40 no actualizados.
[email protected]:~$ sudo -H pip3 install --upgrade pip
Requirement already satisfied: pip in /usr/local/lib/python3.8/dist-packages (21.1.3)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[email protected]:~$ sudo -H pip3 install virtualenv
Requirement already satisfied: virtualenv in /usr/local/lib/python3.8/dist-packages (20.4.7)
Requirement already satisfied: distlib<1,>=0.3.1 in /usr/local/lib/python3.8/dist-packages (from virtualenv) (0.3.2)
Requirement already satisfied: six<2,>=1.9.0 in /usr/lib/python3/dist-packages (from virtualenv) (1.14.0)
Requirement already satisfied: appdirs<2,>=1.4.3 in /usr/local/lib/python3.8/dist-packages (from virtualenv) (1.4.4)
Requirement already satisfied: filelock<4,>=3.0.0 in /usr/local/lib/python3.8/dist-packages (from virtualenv) (3.0.12)
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[email protected]:~$ ls
Descargas   Escritorio  Música      Público  Vídeos
Documentos  Imágenes    Plantillas  snap
[email protected]:~$ mkdir ~/mi_proyecto_dir
[email protected]:~$ mkdir ~/mi_proyecto_dir
mkdir: no se puede crear el directorio «/home/carlos/mi_proyecto_dir»: El archivo ya existe
[email protected]:~$ cd ~/mi_proyecto_dir
[email protected]:~/mi_proyecto_dir$ virtualenv mi_proyecto_env
created virtual environment CPython3.8.5.final.0-64 in 458ms
  creator CPython3Posix(dest=/home/carlos/mi_proyecto_dir/mi_proyecto_env, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/carlos/.local/share/virtualenv)
    added seed packages: pip==21.1.2, setuptools==57.0.0, wheel==0.36.2
  activators BashActivator,CShellActivator,FishActivator,PowerShellActivator,PythonActivator,XonshActivator
[email protected]:~/mi_proyecto_dir$ source mi_proyecto_env/bin/activate
(mi_proyecto_env) [email protected]:~/mi_proyecto_dir$ pip install jupyter
Collecting jupyter
  Downloading jupyter-1.0.0-py2.py3-none-any.whl (2.7 kB)
Collecting ipykernel
  Downloading ipykernel-5.5.5-py3-none-any.whl (120 kB)
     |████████████████████████████████| 120 kB 2.7 MB/s 
Collecting jupyter-console
  Downloading jupyter_console-6.4.0-py3-none-any.whl (22 kB)
Collecting notebook
  Downloading notebook-6.4.0-py3-none-any.whl (9.5 MB)
     |████████████████████████████████| 9.5 MB 9.2 MB/s 
Collecting qtconsole
  Downloading qtconsole-5.1.0-py3-none-any.whl (119 kB)
     |████████████████████████████████| 119 kB 1.6 MB/s 
Collecting ipywidgets
  Downloading ipywidgets-7.6.3-py2.py3-none-any.whl (121 kB)
     |████████████████████████████████| 121 kB 1.6 MB/s 
Collecting nbconvert
  Downloading nbconvert-6.1.0-py3-none-any.whl (551 kB)
     |████████████████████████████████| 551 kB 2.3 MB/s 
Collecting ipython>=5.0.0
  Downloading ipython-7.25.0-py3-none-any.whl (786 kB)
     |████████████████████████████████| 786 kB 3.2 MB/s 
Collecting tornado>=4.2
  Downloading tornado-6.1-cp38-cp38-manylinux2010_x86_64.whl (427 kB)
     |████████████████████████████████| 427 kB 3.2 MB/s 
Collecting traitlets>=4.1.0
  Downloading traitlets-5.0.5-py3-none-any.whl (100 kB)
     |████████████████████████████████| 100 kB 2.9 MB/s 
Collecting jupyter-client
  Downloading jupyter_client-6.1.12-py3-none-any.whl (112 kB)
     |████████████████████████████████| 112 kB 3.3 MB/s 
Collecting pygments
  Downloading Pygments-2.9.0-py3-none-any.whl (1.0 MB)
     |████████████████████████████████| 1.0 MB 4.6 MB/s 
Requirement already satisfied: setuptools>=18.5 in ./mi_proyecto_env/lib/python3.8/site-packages (from ipython>=5.0.0->ipykernel->jupyter) (57.0.0)
Collecting matplotlib-inline
  Downloading matplotlib_inline-0.1.2-py3-none-any.whl (8.2 kB)
Collecting pexpect>4.3
  Downloading pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
     |████████████████████████████████| 59 kB 3.4 MB/s 
Collecting prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0
  Downloading prompt_toolkit-3.0.19-py3-none-any.whl (368 kB)
     |████████████████████████████████| 368 kB 3.5 MB/s 
Collecting jedi>=0.16
  Downloading jedi-0.18.0-py2.py3-none-any.whl (1.4 MB)
     |████████████████████████████████| 1.4 MB 2.7 MB/s 
Collecting backcall
  Downloading backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting pickleshare
  Downloading pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting decorator
  Downloading decorator-5.0.9-py3-none-any.whl (8.9 kB)
Collecting parso<0.9.0,>=0.8.0
  Downloading parso-0.8.2-py2.py3-none-any.whl (94 kB)
     |████████████████████████████████| 94 kB 1.7 MB/s 
Collecting ptyprocess>=0.5
  Downloading ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth
  Downloading wcwidth-0.2.5-py2.py3-none-any.whl (30 kB)
Collecting ipython-genutils
  Downloading ipython_genutils-0.2.0-py2.py3-none-any.whl (26 kB)
Collecting nbformat>=4.2.0
  Downloading nbformat-5.1.3-py3-none-any.whl (178 kB)
     |████████████████████████████████| 178 kB 3.7 MB/s 
Collecting widgetsnbextension~=3.5.0
  Downloading widgetsnbextension-3.5.1-py2.py3-none-any.whl (2.2 MB)
     |████████████████████████████████| 2.2 MB 4.5 MB/s 
Collecting jupyterlab-widgets>=1.0.0
  Downloading jupyterlab_widgets-1.0.0-py3-none-any.whl (243 kB)
     |████████████████████████████████| 243 kB 2.8 MB/s 
Collecting jsonschema!=2.5.0,>=2.4
  Downloading jsonschema-3.2.0-py2.py3-none-any.whl (56 kB)
     |████████████████████████████████| 56 kB 2.4 MB/s 
Collecting jupyter-core
  Downloading jupyter_core-4.7.1-py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 545 kB/s 
Collecting six>=1.11.0
  Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting attrs>=17.4.0
  Downloading attrs-21.2.0-py2.py3-none-any.whl (53 kB)
     |████████████████████████████████| 53 kB 1.7 MB/s 
Collecting pyrsistent>=0.14.0
  Downloading pyrsistent-0.17.3.tar.gz (106 kB)
     |████████████████████████████████| 106 kB 4.7 MB/s 
Collecting pyzmq>=17
  Downloading pyzmq-22.1.0-cp38-cp38-manylinux2010_x86_64.whl (1.1 MB)
     |████████████████████████████████| 1.1 MB 9.0 MB/s 
Collecting argon2-cffi
  Downloading argon2_cffi-20.1.0-cp35-abi3-manylinux1_x86_64.whl (97 kB)
     |████████████████████████████████| 97 kB 2.4 MB/s 
Collecting terminado>=0.8.3
  Downloading terminado-0.10.1-py3-none-any.whl (14 kB)
Collecting Send2Trash>=1.5.0
  Downloading Send2Trash-1.7.1-py3-none-any.whl (17 kB)
Collecting prometheus-client
  Downloading prometheus_client-0.11.0-py2.py3-none-any.whl (56 kB)
     |████████████████████████████████| 56 kB 2.9 MB/s 
Collecting jinja2
  Downloading Jinja2-3.0.1-py3-none-any.whl (133 kB)
     |████████████████████████████████| 133 kB 5.3 MB/s 
Collecting python-dateutil>=2.1
  Downloading python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
     |████████████████████████████████| 227 kB 6.1 MB/s 
Collecting cffi>=1.0.0
  Downloading cffi-1.14.5-cp38-cp38-manylinux1_x86_64.whl (411 kB)
     |████████████████████████████████| 411 kB 5.6 MB/s 
Collecting pycparser
  Downloading pycparser-2.20-py2.py3-none-any.whl (112 kB)
     |████████████████████████████████| 112 kB 6.4 MB/s 
Collecting MarkupSafe>=2.0
  Downloading MarkupSafe-2.0.1-cp38-cp38-manylinux2010_x86_64.whl (30 kB)
Collecting defusedxml
  Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting jupyterlab-pygments
  Downloading jupyterlab_pygments-0.1.2-py2.py3-none-any.whl (4.6 kB)
Collecting pandocfilters>=1.4.1
  Downloading pandocfilters-1.4.3.tar.gz (16 kB)
Collecting entrypoints>=0.2.2
  Downloading entrypoints-0.3-py2.py3-none-any.whl (11 kB)
Collecting testpath
  Downloading testpath-0.5.0-py3-none-any.whl (84 kB)
     |████████████████████████████████| 84 kB 2.3 MB/s 
Collecting nbclient<0.6.0,>=0.5.0
  Downloading nbclient-0.5.3-py3-none-any.whl (82 kB)
     |████████████████████████████████| 82 kB 156 kB/s 
Collecting mistune<2,>=0.8.1
  Downloading mistune-0.8.4-py2.py3-none-any.whl (16 kB)
Collecting bleach
  Downloading bleach-3.3.0-py2.py3-none-any.whl (283 kB)
     |████████████████████████████████| 283 kB 2.0 MB/s 
Collecting async-generator
  Downloading async_generator-1.10-py3-none-any.whl (18 kB)
Collecting nest-asyncio
  Downloading nest_asyncio-1.5.1-py3-none-any.whl (5.0 kB)
Collecting webencodings
  Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
Collecting packaging
  Downloading packaging-20.9-py2.py3-none-any.whl (40 kB)
     |████████████████████████████████| 40 kB 2.3 MB/s 
Collecting pyparsing>=2.0.2
  Downloading pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
     |████████████████████████████████| 67 kB 2.3 MB/s 
Collecting qtpy
  Downloading QtPy-1.9.0-py2.py3-none-any.whl (54 kB)
     |████████████████████████████████| 54 kB 1.6 MB/s 
Building wheels for collected packages: pyrsistent, pandocfilters
  Building wheel for pyrsistent (setup.py) ... done
  Created wheel for pyrsistent: filename=pyrsistent-0.17.3-cp38-cp38-linux_x86_64.whl size=106707 sha256=e6bbf1c3ab821bff25db37c383511188da3a4f86108ffafb72e36a85a06af1a7
  Stored in directory: /home/carlos/.cache/pip/wheels/3d/22/08/7042eb6309c650c7b53615d5df5cc61f1ea9680e7edd3a08d2
  Building wheel for pandocfilters (setup.py) ... done
  Created wheel for pandocfilters: filename=pandocfilters-1.4.3-py3-none-any.whl size=8006 sha256=b9ea03260cb4b2803d7d4ce8b6af9838ccd6c5a1509e73f783636910928a9d84
  Stored in directory: /home/carlos/.cache/pip/wheels/fc/39/52/8d6f3cec1cca4ceb44d658427c35711b19d89dbc4914af657f
Successfully built pyrsistent pandocfilters
Installing collected packages: ipython-genutils, traitlets, six, pyrsistent, attrs, wcwidth, tornado, pyzmq, python-dateutil, pyparsing, ptyprocess, parso, jupyter-core, jsonschema, webencodings, pygments, pycparser, prompt-toolkit, pickleshare, pexpect, packaging, nest-asyncio, nbformat, matplotlib-inline, MarkupSafe, jupyter-client, jedi, decorator, backcall, async-generator, testpath, pandocfilters, nbclient, mistune, jupyterlab-pygments, jinja2, ipython, entrypoints, defusedxml, cffi, bleach, terminado, Send2Trash, prometheus-client, nbconvert, ipykernel, argon2-cffi, notebook, widgetsnbextension, qtpy, jupyterlab-widgets, qtconsole, jupyter-console, ipywidgets, jupyter
Successfully installed MarkupSafe-2.0.1 Send2Trash-1.7.1 argon2-cffi-20.1.0 async-generator-1.10 attrs-21.2.0 backcall-0.2.0 bleach-3.3.0 cffi-1.14.5 decorator-5.0.9 defusedxml-0.7.1 entrypoints-0.3 ipykernel-5.5.5 ipython-7.25.0 ipython-genutils-0.2.0 ipywidgets-7.6.3 jedi-0.18.0 jinja2-3.0.1 jsonschema-3.2.0 jupyter-1.0.0 jupyter-client-6.1.12 jupyter-console-6.4.0 jupyter-core-4.7.1 jupyterlab-pygments-0.1.2 jupyterlab-widgets-1.0.0 matplotlib-inline-0.1.2 mistune-0.8.4 nbclient-0.5.3 nbconvert-6.1.0 nbformat-5.1.3 nest-asyncio-1.5.1 notebook-6.4.0 packaging-20.9 pandocfilters-1.4.3 parso-0.8.2 pexpect-4.8.0 pickleshare-0.7.5 prometheus-client-0.11.0 prompt-toolkit-3.0.19 ptyprocess-0.7.0 pycparser-2.20 pygments-2.9.0 pyparsing-2.4.7 pyrsistent-0.17.3 python-dateutil-2.8.1 pyzmq-22.1.0 qtconsole-5.1.0 qtpy-1.9.0 six-1.16.0 terminado-0.10.1 testpath-0.5.0 tornado-6.1 traitlets-5.0.5 wcwidth-0.2.5 webencodings-0.5.1 widgetsnbextension-3.5.1
WARNING: You are using pip version 21.1.2; however, version 21.1.3 is available.
You should consider upgrading via the '/home/carlos/mi_proyecto_dir/mi_proyecto_env/bin/python -m pip install --upgrade pip' command.
(mi_proyecto_env) [email protected]:~/mi_proyecto_dir$ jupyter notebook
[I 18:20:27.709 NotebookApp] Writing notebook server cookie secret to /home/carlos/.local/share/jupyter/runtime/notebook_cookie_secret
[I 18:20:28.151 NotebookApp] Serving notebooks from local directory: /home/carlos/mi_proyecto_dir
[I 18:20:28.151 NotebookApp] Jupyter Notebook 6.4.0 is running at:
[I 18:20:28.151 NotebookApp] http://localhost:8888/?token=e91cecb366426aa83eee2b176e262267cd70f188147d9d69
[I 18:20:28.151 NotebookApp]  or http://127.0.0.1:8888/?token=e91cecb366426aa83eee2b176e262267cd70f188147d9d69
[I 18:20:28.151 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 18:20:28.257 NotebookApp] 
    
    To access the notebook, open this file in a browser:
        file:///home/carlos/.local/share/jupyter/runtime/nbserver-3327-open.html
    Or copy and paste one of these URLs:
        http://localhost:8888/?token=e91cecb366426aa83eee2b176e262267cd70f188147d9d69
     or http://127.0.0.1:8888/?token=e91cecb366426aa83eee2b176e262267cd70f188147d9d69
Anuncio publicitario

Videos mas famosos sobre Inteligencia artificial


Inteligencia Artificial es una realidad de hoy en día  constituyendo realmente una colección de tecnologías avanzadas que permite a las máquinas sentir, comprender, actuar y aprender.

En el  siguiente documental de Discovery channel podemos  ver como la inteligencia artificial está cambiando la forma de ver el mundo  en ejemplos tan diversos  como :

  • La capacidad de debatir
  • Vehículos autónomos
  • Teoría de los juegos
  • Robótica
  • Humanoides
  • Educación
  • Aplicaciones para invidentes
  • Reconocimiento facial
  • Uso de otros medicamentos para curar otras enfermedades
  • etc

Asimismo  se  trata un tema como Stephen Hawking pronosticó que el desarrollo de la inteligencia artificial puede llegar a provocar la extinción de la raza humana.

En este otro  video, podemos  ver la evolución de los robots que  han creado la famosa  empresa  Boston Dynamics desde 2012 hasta 2019

 

Transformar el negocio de maneras que no hemos visto desde la Revolución Industrial; reinventar fundamentalmente la forma en que las empresas funcionan, compiten y prosperan. Cuando se implementan holísticamente, estas tecnologías ayudan a mejorar la productividad y reducir los costos, desbloqueando empleos más creativos y creando nuevas oportunidades de crecimiento.

Este cortometraje fue creado por MMP Global para destacar por qué los profesionales que trabajan en Servicios Financieros necesitan estar al tanto de la IA ahora.

 

Antes de profundizar en el apasionante mundo de la Inteligencia Artificial, hay que conocer bien por donde nos movemos. Hoy traigo un mapa conceptual con algunos de los conceptos más importantes y que con mayor confusión son utilizados: el Machine Learning  y el Deep Learning.

La visión por computadora es fascinante para mí porque a) suena intrigante y b) es parte de tantas cosas diferentes que usamos hoy en día (realidad aumentada, búsqueda de imágenes, Google Fotos, cámaras, esas primeras líneas amarillas que vemos viendo fútbol en la televisión, coches autónomos, lentes selfie, y más). En este video,podemos ver  varios investigadores de Google para obtener una visión general del campo hoy, un poco de su historia, y un indicio de su futuro.

Instalar Pyenv en W10


pyenv para python es una gran herramienta pero, como rbenv para desarrolladores ruby, pero no es compatible con Windows directamente. Después de un poco de investigación y comentarios de los desarrolladores de Python, descubrí que querían una característica similar para los sistemas Windows.

El autor que ha desarrollado esta herrmienta se inspiró en el problema de pyenv para el soporte de Windows auque el usa Mac y Linux conpyenv , pero algunas empresas todavía usan Windows para el desarrollo. Esta biblioteca es para ayudar a los usuarios de Windows a administrar múltiples versiones de Python.

El autor encontro un sistema similar para rbenv-win para desarrolladores ruby. Este proyecto se bifurcó de rbenv-win y se modificó para pyenv . pyenv-win está madurando cada día gracias por los contribuyentes y apoyos.

 

pyenv

pyenv es una sencilla herramienta de gestión de versiones de Python. Le permite cambiar fácilmente entre varias versiones de Python. Es simple, discreto y sigue la tradición de UNIX de herramientas de un solo propósito que hacen una cosa bien.

Estos son algunos de los camandos mas usados:

 

   commands     List all available pyenv commands
   local        Set or show the local application-specific Python version
   global       Set or show the global Python version
   shell        Set or show the shell-specific Python version
   install      Install 1 or more versions of Python 
   uninstall    Uninstall 1 or more versions of Python
   update       Update the cached version DB
   rehash       Rehash pyenv shims (run this after switching Python versions)
   vname        Show the current Python version
   version      Show the current Python version and its origin
   versions     List all Python versions available to pyenv
   exec         Runs an executable by first preparing PATH so that the selected Python
   which        Display the full path to an executable
   whence       List all Python versions that contain the given executable

 

 

 

 

Instalación

 

Obtener pyenv-win

Obtenga pyenv-win mediante uno de los siguientes métodos:

  • Con pip (para admitir usuarios de Python existentes)
    • Powershell o Git Bash: pip install pyenv-win --target "$HOME\.pyenv"
    • cmd.exe: pip install pyenv-win --target "%USERPROFILE%\.pyenv"
  • Con archivo zip
    1. Enlace de descarga: pyenv-win
    2. Cree un .pyenvdirectorio si no existe bajo $HOMEo%USERPROFILE%
    3. Extraiga y mueva archivos a
    • Powershell o Git Bash: $HOME/.pyenv/
    • cmd.exe: %USERPROFILE%\.pyenv\
    1. Asegúrese de ver la bincarpeta debajo%USERPROFILE%\.pyenv\pyenv-win
  • Con Git
    • Powershell o Git Bash: git clone https://github.com/pyenv-win/pyenv-win.git "$HOME/.pyenv"
    • cmd.exe: git clone https://github.com/pyenv-win/pyenv-win.git "%USERPROFILE%\.pyenv"
  • Con chocolate
    • choco install pyenv-win (esto también instala todas las variables de entorno)

 

Terminar la instalación

NOTA: Si está ejecutando Windows 10 1905 o más reciente, debe deshabilitar el iniciador de Python incorporado a través deshabilitado los alias de «Instalador de aplicaciones» para Python,para ello  invoquea la configuración predeterminada de Windows 10 en la pantalla de su PC usando las teclas de acceso directo de Windows + I.

La imagen tiene un atributo ALT vacío; su nombre de archivo es alias.jpg

Haga clic en Aplicaciones . Se abrirán las opciones adicionales para las aplicaciones en una nueva página y puede desactivar ahi los alias para Python.

 

Si lo instaló con Chocolatey, puede pasar al paso 3.

  1. Agregue PYENV y PYENV_HOME a sus variables de entorno
    1. Utilizando PowerShell o Windows 8 / ejecución de Terminal superior[System.Environment]::SetEnvironmentVariable('PYENV',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") [System.Environment]::SetEnvironmentVariable('PYENV_HOME',$env:USERPROFILE + "\.pyenv\pyenv-win\","User") Nota: PYENV_HOME es compatible con pipenv
  2. Ahora agregue las siguientes rutas a su variable USER PATH para acceder al comando pyenv. Ejecute lo siguiente en PowerShell o Windows 8 / Terminal superior: [System.Environment]::SetEnvironmentVariable('path', $HOME + "\.pyenv\pyenv-win\bin;" + $HOME + "\.pyenv\pyenv-win\shims;" + $env:Path,"User")
  3. Cierre y vuelva a abrir su aplicación de terminal y ejecute pyenv --version
    1. Si el valor de retorno es la versión instalada de pyenv, continúe con el Paso 4
    2. Si recibe un error de comando no encontrado, asegúrese de que las variables de entorno estén configuradas correctamente a través de la GUI: Esta PC → Propiedades → Configuración avanzada del sistema → Avanzado → Variables de entorno … → RUTA
    3. Si recibe un error de comando no encontrado y está utilizando Visual Studio Code u otro IDE con un terminal integrado, reinícielo e intente nuevamente
  4. Ahora ejecute el pyenv rehashdirectorio de inicio
    • Si recibe un error, repita los pasos nuevamente. .
  5. Ejecutar pyenvpara ver la lista de comandos que admite.

La instalación está terminada.

 

Soporte  de 32 bits

  • Con Git
    • cambiar directorio a %USERPROFILE%\.pyenvviacd
    • ejecutar el siguiente comando git checkout -b 32bit-train origin/32bit-train
    • ahora ejecuta pyenv --versionnecesitas ver 2.32.x
  • Con pepita
    • Powershell o Git Bash: pip install pyenv-win==2.32.x --target $HOME\.pyenv
    • cmd.exe: pip install pyenv-win==2.32.x --target %USERPROFILE%\.pyenv
  • Con archivo zip
    1. Enlace de descarga: pyenv-win
    2. Cree un .pyenvdirectorio si no existe bajo $HOMEo%USERPROFILE%
    3. Extraiga y mueva archivos a
    • Powershell o Git Bash: $HOME/.pyenv/
    • cmd.exe: %USERPROFILE%\.pyenv\
    1. Asegúrese de ver la bincarpeta debajo%USERPROFILE%\.pyenv\pyenv-win

 

 

Uso

  • Actualice la lista de versiones de Python pyenv updatedetectables usando: comando para pyenv-win 2.64.xy 2.32.xversiones

PS C:\Users\carlo> pyenv update
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Info] :: Scanned 141 pages and found 479 installers.
PS C:\Users\carlo>

  • Para ver una lista de las versiones de Python compatibles con pyenv windows: pyenv install -l
  • Para instalar una versión de Python: pyenv install 3.8.5

PS C:\Users\carlo> pyenv install 3.8.5
:: [Info] :: Mirror: https://www.python.org/ftp/python
:: [Downloading] :: 3.8.5 …
:: [Downloading] :: From https://www.python.org/ftp/python/3.8.5/python-3.8.5-amd64-webinstall.exe
:: [Downloading] :: To C:\Users\carlo.pyenv\pyenv-win\install_cache\python-3.8.5-amd64-webinstall.exe
:: [Installing] :: 3.8.5 …
:: [Info] :: completed! 3.8.5
PS C:\Users\carlo>

  • Nota: Es posible que aparezca un asistente de instalación para algunas instalaciones no silenciosas. Deberá hacer clic en el asistente durante la instalación. No es necesario cambiar ninguna opción en él. o puede usar -q para bastante instalación
    • También puede instalar varias versiones en un solo comando: pyenv install 2.4.3 3.6.8
  • Para configurar una versión de Python como la versión global: pyenv global 3.8.5
    • Esta es la versión de Python que se usará de forma predeterminada si no se establece una versión local (ver más abajo).
    • Nota: Primero se debe instalar la versión.
  • Para establecer una versión Python como la versión local: pyenv local 3.8.5.
    • La versión proporcionada se utilizará siempre que pythonse llame desde esta carpeta. Esto es diferente a un entorno virtual, que debe activarse explícitamente.
    • Nota: Primero se debe instalar la versión.
  • Después de (des) instalar cualquier biblioteca usando pip o modificar los archivos en la carpeta de una versión, debe ejecutar pyenv rehashpara actualizar pyenv con nuevos shims para Python y los ejecutables de las bibliotecas.
    • Nota: Esto debe ejecutarse fuera de la .pyenvcarpeta.
  • Para desinstalar una versión de Python: pyenv uninstall 3.8.5
  • Para ver qué Python está usando y su ruta: pyenv version

PS C:\Users\carlo> pyenv version
3.8.5 (set by C:\Users\carlo.python-version)
PS C:\Users\carlo>

  • Para ver todas las versiones de Python instaladas en este sistema: pyenv versions

PS C:\Users\carlo> pyenv versions

  • 3.8.5 (set by C:\Users\carlo.python-version)
    PS C:\Users\carlo>

 

Cómo recibir actualizaciones

  • Si se instala a través de pip
    • Agregue la ruta instalada de pyenv-win al easy_install.ptharchivo que se encuentra en site-package. Ahora pyenv-win es reconocido por pip
    • Recibe actualizaciones a través de pip pip install --upgrade pyenv-win
  • Si se instala a través de Git
    • Vaya a %USERPROFILE%\.pyenv\pyenv-win(que es su ruta instalada) y ejecutegit pull
  • Si se instala a través de zip
    • Descarga el zip más reciente y extráelo
    • Ir a %USERPROFILE%\.pyenv\pyenv-winy reemplazar las carpetas libexecy bincon los nuevos que acaba de descargar

 

Preguntas más frecuentes

  • Pregunta: ¿pyenv para windows es compatible con python2?
    • Respuesta: Sí, admitimos python2 desde la versión 2.4+ hasta que python.org lo elimine oficialmente.
    • Las versiones inferiores a 2.4 utilizan instaladores Wise obsoletos y tienen problemas para instalar varias versiones de parches, a diferencia de Windows MSI y los nuevos instaladores Python3 que admiten instalaciones de «extracción».
  • Pregunta: ¿pyenv para windows es compatible con python3?
    • Respuesta: Sí, admitimos python3 desde la versión 3.0. Lo apoyamos desde 3.0 hasta que python.org lo elimine oficialmente.
  • Pregunta: Tengo el problema batch file cannot be found.al instalar Python, ¿qué debo hacer?
    • Respuesta: puede ignorarlo. Está llamando al pyenv rehashcomando antes de crear el archivo bat en algunos dispositivos.
  • Pregunta: El sistema se atasca al desinstalar la versión de Python, ¿qué hacer?
    • Respuesta: Navegue a la ubicación donde instaló pyenv, abra su carpeta de ‘versiones’ (generalmente %USERPROFILE%\.pyenv\pyenv-win\versions) y elimine la carpeta de la versión que desea eliminar.
  • Pregunta: Instalé pyenv-win usando pip. ¿Cómo puedo desinstalarlo?
  • Pregunta: pyenv-win no se reconoce, pero he configurado ENV PATH?
    • Respuesta: De acuerdo con Windows, al agregar la ruta en las variables Usuario o Sistema, para la variable Usuario debe cerrar la sesión y volver a iniciar sesión para reflejar los cambios. Para la variable del sistema, no es necesario.

 

 

Fuente https://github.com/pyenv-win/pyenv-win

IoT Cloud


En este post vamos a a ver conectar una placa MKR1000 (o MKR 1010) a la nube de Arduino IoT  de modo que podremos controlar y supervisar  las entradas  o salidas de estas places a través de Internet utilizando el sitio web de Arduino IoT Cloud.

Para ello simplemente seguiremos tres pasos,:

  • Agregaremos nuestra placa a Arduino IoT Cloud como una cosa( Thing) , es decir  una representación de nuestra placa en la nube.
  • A continuación, le daremos a nuestra cosa un conjunto de propiedades que representan sensores, LEDs, motores y muchos otros componentes en el proyecto al que queremos acceder desde la nube.
  • Subiremos a nuestra placa el código que nos propone Arduino IoT Cloud personalizado para nuestra red wifi

Si le  interesa  como hacerlo , vera que es muy sencillo,  pues como vamos a ver  casi todo esta hecho, pero antes, veremos las semejanzas   y diferencias de ambas placas  y después veremos paso a paso como lograrlo.

Arduino MKR1000

Arduino MKR1000 es una placa diseñada para ofrecer una solución práctica y rentable para cualquiera que busque agregar conectividad WiFi a sus proyectos con una experiencia mínima en redes.  Su precio no es excesivo  teniendo en cuenta que integra la conectividad  wifi (unos 38€ en Amazon)

El diseño incluye un circuito de carga Li-Po que permite que el Arduino MKR1000 funcione con una  batería o 5V externos, cargando la batería Li-Po mientras funciona con energía externa: el cambio de una fuente a otra se realizara automáticamente  y por tanto no tendremos que preocuparnos de nada más.

El MKR1000 tiene un procesador Arm Cortex-M0 + de 32 bits  corriendo a 2.4ghz ,  y cuenta con  el rico conjunto habitual de interfaces de E / S . Sin duda uno de su punto fuertes  es que integra  WiFi de baja potencia con un chip criptográfico para una comunicación segura.

Una de las grandes ventajas  es que puede programarlo utilizando el software Arduino (IDE) al que estamos  todos familiarizados  siendo muy  fácil de usar.

Todas estas características hacen de esta placa la opción preferida para los proyectos emergentes que funcionan con baterías de IoT en un factor de forma compacto.

 Desafortunadamente, Arduino aún no lo ha integrado en su IDE, por lo que la configuración no es tan fácil como lo es para la mayoría de sus otras placas ,sin embargo, siga algunos pasos para configurarlo y podrá ponerlo a prueba: –

  • Instale el último IDE de Arduino 
  •  Haga clic en Herramientas | Puerto – Seleccione el puerto COM (no se mostrará ninguna placa) 
  • Ahora haga clic en Herramientas | Junta | Obtener información del tablero. Verá información con «Tablero desconocido» como tipo
  •  A continuación, haga clic en Herramientas | Junta | Gerente de la Junta
  • Instale el paquete Arduino SAMD Boards (ARM Cortex-M0 + de 32 bits) que incluye MKR WiFi 1010, Genuino Zero, MKR1000, etc.
  • Reinicie el IDE para que surta efecto el nuevo paquete de placa
  • En este punto, puede desconectar y volver a conectar la placa para que el IDE lo vea
  • Haga clic en Herramientas | Información del tablero; esta vez verá «Arduino / Genuino MKR1000» !!! ¡No olvides este siguiente paso o no podrás subir tu boceto!
  • Haga clic en Herramientas | Tablero: 
  • Seleccione Arduino / Genuino MKR1000 . En este punto, yaa puede cargar un boceto en su tablero  como  por ejemplo el que vamos a ver en este post para controlar un led desde Internet

Como   se puede  ver en la imagen de  mas abajo , los pines disponibles son casi los mismos que los que solemos tener en un Arduino convencional  : los pines A0  a A6   para entradas  y salidas analógicas , los pines 0 al 14  para entradas salidas binarias y los típicos de alimentación externa(VIN,VCC 5v y GND)   , la referencia (AREF )  y  RESET.

Si le interesa esta placa la puede comprar en Amazon por unos 38€

Arduino MKR1010

Hablamos ahora de una placa muy similar a la anterior   algo mas barata que la la Mkr1000 ( unos  33€  en Amazon , es decir unos 5€ mas barato que la MKR1000)

Esta placa  está compuesta por tres bloques principales:

  • Microchip ATSAMD21 MCU basado en un procesador Arm Cortex-M0 
  • Serie u-blox NINA-W10 de baja potencia 2.4GHz IEEE 802.11 b / g / n Wi-Fi ECC508 CryptoAuthentication
  • El diseño incluye un Li-Po Circuito de carga que permite que Arduino MKR WiFi 1010 funcione con batería o 5V externos, cargando la batería Li-Po mientras funciona con energía externa. El cambio de una fuente a otra se realiza automáticamente.

Como  vemos , la gran diferencia  es  el Microcontrolador que es menos potente  pues  cuenta con el  Microchip ATSAMD21 (procesador Arm Cortex-M0 +)  en contraste  con el Arm Cortex-M0 + de 32 bits  corriendo a 2.4ghz del MKR100.

Respecto a la conectividad,  es similar al  MKR1000  contando con WiFi u-blox NINA-W102 (ESP32)

La alimentación se puede hacer con una fuente de alimentación externa de 5v DC  bien por  USB  o bien por el pin VIN , pero  cuenta   además  con conexión para Batería compatible (*) Li-Po de celda única, 3,7 V, 700 mAh  siendo el voltaje mínimo de funcionamiento del circuito 3,3 V .

 

Como   se puede  ver en la imagen de  mas abajo , los pines disponibles son casi los mismos que los que solemos tener en un Arduino convencional  ( y los mismo que el  MKR100)   : los pines A0  a A6   para entradas  y salidas analógicas , los pines 0 al 14  para entradas salidas binarias y los típicos de alimentación externa(VIN,VCC 5v y GND)   , la referencia (AREF )  y  RESET.

Si le interesa esta placa la puede comprar en Amazon por unos 33€

 

1. Crear una cosa y controlar un LED a través de la nube

Para empezar vamos a crear un circuito simple que consiste en un LED conectado a la placa Arduino MKR1000  (o MKR 1010).

Como se muestra en el esquema, simplemente conectaremos la pata positiva del LED al Pin digital 2 de la placa y la pata negativa a tierra a través de una resistencia de 150 ohmios.

Observe que la potencia de la placa de pan proviene del Vcc, no del pin de 5V de la placa MKR1000 pues  si lo conectamos al pin de 5V, podríamos dañar la placa  cuando por ejemplo  agreguemos  un botón.

An LED connected to Digital Pin 2 of an Arduino MKR1000

Ahora que hemos conectado nuestro LED, podremos  habilitado para IoT pero antes de eso, tendremos que configurar una placa Arduino para que pueda comunicarse con la nube.

Para este proyecto, podemos elegir un MKR1000 o un MKR  1010.  Una vez que nuestra placa está configurada, necesitaremos crear a una cuenta Arduino  ( ai aún no la tenemos creada, y hecho ya nos iremos a Arduino IoT Cloud y comenzaremos  con el  viaje a través de IoT 

Asi pues nos  iremos  Arduino IoT Cloud que comenzara con el proceso guiado de introducción  que nos ayudará a configurar nuestra placa, darle un nombre e instalar las claves que le permitirán conectarse de forma segura a nuestra nube mediante un canal cifrado.

Getting Started Wizard
Este es el asistente de introducción
Select a supported board
Seleccionaremos  una placa compatible
Let's make it connect securely to IoT Cloud
Haremos que se conecte de forma segura a IoT Cloud
Time to plug our board into our computer, it will be recognised automatically
Es hora de conectar nuestra placa a nuestro ordenador, se reconocerá automáticamente
Let's give it a name...
Vamos a darle un nombre…
and click on CONFIGURE
Ahora  haremos clic en CONFIGURAR
After a little time all is done, and we can get BACK TO CLOUD
Después de un poco de tiempo todo está hecho, y podemos llegar DE VUELTA A CLOUD

Al hacer clic en el botón «BACK TO CLOUD» podremos crear nuestra primera Cosa.

Nuestra placa MKR recién configurada se seleccionará automáticamente para ser asociada con nuestra Cosa, por lo que todo lo que queda es darle un nombre. Elegimos llamarlo IoTCloud_Tutorial_Thing pero puede nombrarlo como desee.

 

Our board is preselected ->
Nuestra placa está preseleccionada ->
Let's name it...
Vamos a nombrarlo…
and click the CREATE button
y haga clic en el botón CREAR

Ahora seremos redirigidos a nuestra vista de edición de Thing, donde podremos crear y modificar sus Propiedades – la representación de sensores y actuadores a los que queremos acceder a través de la nube.

Nuestro objetivo es encender y apagar el LED a través de Cloud cuando alternamos un interruptor gráfico en nuestro navegador. Para hacerlo, tenemos que crear una propiedad, así que haga clic en el botón + como se muestra en la imagen de abajo.

Time to create our first Property
Es hora de crear nuestra primera propiedad

Usaremos como nombre significativo que lo represente  (este nombre se reflejará en el nombre de la variable que usaremos en el boceto) como por ejemplo dado que va ser un led   de  «.light"

El Tipo de esta propiedad debe ser «ON/OFF (Boolean)».

Our properties details are set, let's CREATE it
Nuestros detalles de propiedades están establecidos  así que vamos vamos a crearlo

Podemos dejar El permiso establecido en «Leer y escribir» – para que podamos encender y apagar el LED desde el navegador. 

También deje Actualizar en «Cuando cambie el valor», lo cual  asegurará de que siempre que el valor de la propiedad/variable cambie dentro del boceto de la placa, dicho valor se enviará inmediatamente a la nube.

Finalmente haga clic en CREAR.

Property Edit view
Vista de edición de propiedades
Dashboard view
Vista del panel

 

Desde la vista Editar podemos hacer clic en «EDITAR CODE». Esto nos redirigirá al Editor mostrando un boceto ya hecho que se ha generado para nuestra Cosa.

En este caso de ejemplo se generará el siguiente código que tendremos que cargar en nuestra placa:

 

*
Sketch generated by the Arduino IoT Cloud Thing "testThing"
https://create.arduino.cc/cloud/things/d276ab77-67cb-420b-9ea4-bd34cdf385d9



Arduino IoT Cloud Properties description



The following variables are automatically generated and updated when changes are made to the Thing properties



bool switchState;
int potentiometerValue;
bool ledState;



Properties which are marked as READ/WRITE in the Cloud Thing will also have functions
which are called when their values are changed from the Dashboard.
These functions are generated with the Thing and added at the end of this sketch.
*/



include "thingProperties.h"



include



define LED_PIN 2



define POT_PIN A1



define BUTTON_PIN 5



FTDebouncer buttons;



void setup() {
pinMode(LED_PIN, OUTPUT);
buttons.addPin(BUTTON_PIN, LOW);
buttons.init();



/*
The following function allows you to obtain more information
related to the state of network and IoT Cloud connection and errors
the higher number the more granular information you’ll get.
The default is 0 (only errors).
Maximum is 3
*/
setDebugMessageLevel(2);



// Initialize serial and wait for port to open:
Serial.begin(9600);
// This delay gives the chance to wait for a Serial Monitor without blocking if none is found
delay(1500);



// Defined in thingProperties.h
initProperties();



// Connect to Arduino IoT Cloud
ArduinoCloud.begin(ArduinoIoTPreferredConnection);
}



void loop() {
buttons.update();
ArduinoCloud.update();
// Your code here
int angleSensor = analogRead(A1);
angle = map(angleSensor, 0, 1023, 0, 270);
}



void onLightChange() {
digitalWrite(LED_PIN, light);
Serial.print("The light is ");
if (light) {
Serial.println("ON");
} else {
Serial.println("OFF");
}
}



void onPinActivated(uint8_t pinNr) {
// do something according to the _pinNR that is triggered. For instance:
Serial.println(pinNr);
toggle = !toggle;
}



void onPinDeactivated(uint8_t pinNr) {
// do something according to the _pinNR that is triggered. For instance:
Serial.println(pinNr);
}

 

El boceto se denominará exactamente igual que nuestra Cosa, más la fecha de creación y, finalmente, un número si ya existe un boceto con nombre .

Aparte del archivo .ino principal , verá tres archivos más:

  • ReadMe.adoc: se trata de un archivo de texto sin formato que contiene información sobre el boceto, el autor y el propio proyecto.
  • thingProperties.h: este es el código generado por Arduino IoT Cloud cuando agregamos nuestra propiedad. No necesitamos editar este código, pero es útil verlo ya que muestra qué variablesde nuestro archivo de boceto principal (.ino) se sincronizarán con la nube.light
  • En la Pestaña Secreto: Detalles de la conexión WiFi,  esta pestaña nos permite rellenar los valores  como  son el nombre y la contraseña de la red WiFi a la que se conectará nuestra placa.SECRET_SSIDSECRET_PASS

 

Vamos a profundizar en cada línea de este boceto para entender lo que hacen los difrentes ficheros qeu lo compone:

Fichero thingProperties.h

#include <ArduinoIoTCloud.h>

Importa la biblioteca ArduinoIoTCloud, que es necesaria para sincronizar nuestras variables de boceto locales con sus propiedadesde IoT Cloud.

#include <Arduino_ConnectionHandler.h>

El WiFiConnectionManager se utiliza para gestionar la conexión WiFi y la reconexión sin problemas.

char ssid[] = SECRET_SSID;
char pass[] = SECRET_PASS;

Estos valores se extraen de la pestaña Secreto.

#define THING_ID "d276ab77-67cb-420b-9ea4-bd34cdf385d9"

El código de identificación único de la cosa.

void onLightChange();

Esta línea declara una función que se llamará cada vez que se cambia el valor de nuestra propiedad en el panel. Este tipo de función se conoce como devolución de llamada.light

bool light;

Declaración de la variable.light

void initProperties()

Esta función se llamará dentro del bloque de nuestro archivo *.ino. setup()

ArduinoCloud.setThingId(THING_ID);

Le dice a nuestro boceto a qué cosa conectarse.

ArduinoCloud.addProperty(light, READWRITE, ON_CHANGE, onLightChange);

Este código pues le indica al sketch que trate la variable como una propiedad de nuestra cosa y que ejecute la función de devolución de llamada cada vez que se cambie el valor de propiedad de Arduino IoT Cloud.

Los permisos se establecen para esta propiedad porque esto es lo que seleccionamos al crear esta propiedad.lightonLightChangeREADWRITE

 

El resto de codigo es  el siguiente:

void onLightChange();

bool toggle;
int angle;
bool light;

void initProperties(){
ArduinoCloud.setThingId(THING_ID);
ArduinoCloud.addProperty(toggle, READ, ON_CHANGE, NULL);
ArduinoCloud.addProperty(angle, READ, ON_CHANGE, NULL, 3.000000);
ArduinoCloud.addProperty(light, READWRITE, ON_CHANGE, onLightChange);
}

WiFiConnectionHandler ArduinoIoTPreferredConnection(ssid, pass);

 

Este código Inicializa Connection Manager con el nombre de punto de acceso WiFi (SECRET_SSID) y la contraseña (SECRET_PASS)que establecemos en la pestaña Secreto

 

Fichero *.ino

Al igual que en cualquier Arduino Sketch, hay dos funciones principales, y . Se llama una sola vez; cuando el croquis se inicia o se restablece. El se ejecuta continuamente siempre y cuando la placa esté siendo alimentada.void setup(){...}void loop() {...}setup()loop()

#include "thingProperties.h"

Importa variables y funciones declaradas en thingProperties.h, así como en otras bibliotecas importadas.

setDebugMessageLevel(2);

Establece el nivel deseado de mensajes de registro que se imprimirán en el Monitor serie. En este momento el nivel se establece en 2, pero podemos cambiarlo de0 (que registra sólo errores) hasta 3 (que registra TODO!). Si algo no está funcionando con la conexión a WiFi o Cloud, será más fácil encontrar el problema si se establece en un nivel superior. Por ahora, podemos dejarlo como está.

Serial.begin(9600);

Inicializa el monitor seriepara imprimir lo y leer deél.

delay(1500);

Espera 1,5 segundos para dar al Monitor serie el tiempo necesario para inicializar.

initProperties();

Inicializa las propiedades tal como se definen en thingProperties.h.

ArduinoCloud.begin(ArduinoIoTPreferredConnection);

InicializatheArduinoCloudusingthe mencionado anteriormente ConnectionManager.

Dentro de lo que encontramosloop()

ArduinoCloud.update();

Maneja muchas cosas en segundo plano, incluyendo la sincronización de los valores de las propiedades entre la nube y la placa, checkingtheconnectiontonetworkyCloudy otra lógica. Si el valor de una propiedad cambia en el boceto, la biblioteca la detectará automáticamente y notificará a la nube, de modo que dicho valor se reflejará en nuestro Arduino IoT Cloud Dashboard. Del mismo modo, cuando se cambia el valor de una propiedad en el panel, la biblioteca actualizará el valor correspondiente en el dispositivo.

void onLightChange() {...}

La implementación de nuestra devolución de llamada que se llamará en cualquier momento que cambie el valor de la propiedad. Aquí agregaremos cualquier código que queramos que se ejecute cuando cambie la propiedad de nuestro panel.light

Y ahora, con el fin de encender y apagar el LED desde el Arduino IoT Cloud Dashboard, necesitamos escribir algunas líneas de código. Primero definimos el pin al que está conectado nuestro LED. Agregue este código justo encima de la funciónsetup()

#define LED_PIN 2

En la función, necesitamos inicializar este pin para que sea una SALIDA:setup()

pinMode(LED_PIN, OUTPUT);

Por último, en la función, agregamos un poco de lógica para rastrear el estado en el monitor serie y para encender y apagar el LED. Tenga en cuenta que esta función de devolución de llamada se genera automáticamente cada vez que se agrega una nueva propiedad con permisos de lectura y escritura.onLightChange()light

void onLightChange() {
    digitalWrite(LED_PIN, light);
    Serial.print("The light is ");
    if (light) {
        Serial.println("ON");
    } else {
        Serial.println("OFF");
    }
}

 

Pruebas

Una vez preparados los ficheros  anteriores  podemos cargar el boceto desde el IDE de Arduino haciendo clic en el botón Cargar y luego abra el Monitor Serie a la izquierda para ver si todo funciona.

Una vez conectado con éxito a nuestro WiFi, logró obtener una dirección e inició un enlace seguro, la placa se conectará a IoT Cloud y comenzará a intercambiar datos con ella.

[ 144313 ] Connecting to "FT Mobile"
[ 148284 ] Connected to "FT Mobile"
[ 148284 ] Acquiring Time from Network
....
[ 148690 ] Network Time: 1550057496
[ 148910 ] Connecting to Arduino IoT Cloud...
[ 152212 ] Connected to Arduino IoT Cloud

Si alguno de los pasos anteriores falla, recibiremos un error. Si eso sucede, podemos restablecer el tablero e intentarlo de nuevo. Si los pasos anteriores se han seguido cuidadosamente, es un caso poco probable 🙂

Al hacer clic en el botón GO TO IOT CLOUD seremos redirigidos a la página de nuestra Cosa en Arduino IoT Cloud. Desde aquí haremos clic en el botón del panel.

Dasboard view
En la Vista de Dasboard ya deberíamos ver un widget que muestra el estado de la propiedad que creamos, y debe establecerse en OFF.light

Vamos a hacer clic en él un par de veces y vamos a ver el LED encender y apagar… y ON… y OFF de nuevo…

¡Misión cumplida!

 

Ejecute cualquier app Android en su PC


Aunque cada día los terminales móviles  y tabletas   tanto como Android como Ios  roban el protagonismo al clásico ordenador personal , no faltan las voces alertando de  que es mucho mejor disfrutar de una aplicación desde el propio ordenador  a hacerlo en un dispositivo móvil . 

Desgraciadamente aunque fuese deseable , no siempre  están disponibles las mismas aplicaciones tanto para móvil como para ordenador , así que vamos a  ver  una solución  muy sencilla : usar  un emulador Android para poder usar la aplicación desde el ordenador.

BlueStacks es una compañía de tecnología americana autora que produce BlueStacks App Player , aplicación  diseñada para permitir que aplicaciones de Android puedan ejecutarse en ordenadores  con  Windows y Macintosh , asi como  otros productos multi-plataforma basado en la nube.

El App Player (reproductor de aplicaciones) ,  según sus autores , puede ejecutar más del 96% de los 1.4 millones de aplicaciones que esten disponibles en Google Play ​ y es una pieza descargable de aplicación para Windows y Macintosh que virtualiza la completa experiencia del entorno de Android.

La aplicación es de libre descarga y uso, aunque hace unos años presentó a los usuarios la opción de paso a modo freemium, para instalar aplicaciones patrocinadas o comprar una suscripción mensual por $2 ​( lamentablemente  esto no se menciona antes de la descarga o durante la instalación).  

Para los amigos de  mundo Apple en  2012, la compañía lanzó una versión alfa- y  después beta  de la aplicación para Mac OS pero no duró mucho la versión para Mac OS del reproductor ,pues dejó de estar disponible para descargar en 2014. Afortunadamente por fin en  2015, BlueStacks, Inc. anunció  una versión nueva del reproductor para Mac OS

 

El modo más fácil y seguro de descargar BlueStacks es desde su página web oficial.

Como vemos  en la imagen anterior, se muestran allí de forma prominente mas de un botón verde de Descarga BlueStacks, que al pulsar  procederá a  descargar e instalar  la  citada aplicación  en función del sistema operativo   que disponga( Windows o Mac )  sin  mas pasos intermedios .

Los requisitos mínimos de BlueStacks no son elevados aunque se recomienda  uan buena dosis de memoria  RAM

Los requisitos recomendados por sus creadores son los siguientes :

      • CPU Con Soporte De Virtualizacion Por Hardware
      • Windows 7 O Superior
      • CPU Intel o amd
      • RAM 4GB
      • GPU Nvidia Geforce, AMD RADEON HD O Intel HD Graphics

Desde  su página web oficial obtendremos automáticamente  el instalador para el so desde el que se pide  , en este caso si es un ordenador con windows para windows , y que podemos lanzar con un  simple doble clic de iniciar   simplemente  pulsando «Instalar ahora» y comenzará primero la descarga, de aproximadamente 500   MB, para continuar con la instalación.

Una ayuda innegable de este emulador es que viene integrado con Google Play , de modo que  si nos validamos contra  nuestra cuenta de Google , se  pueden descargar juegos y  todo tipo de aplicaciones directamente desde la  propia tienda de Google ( y  por supuesto comprar las que no sean gratuitas). 

Originalmente  una vez instalado la aplicación no veremos casi nada  a excepción del navegador ,el gestor de medios ,el  acceso a la parte de Configuración , el acceso de la cámara (del pc)  y poco más.

Asimismo BlueStacks incluye además su propio Centro de aplicaciones desde la pestaña  superior  junto a Biblioteca «Game Center «, que es algo así como un directorio, listado y top-ten de las aplicaciones y juegos en BlueStacks.  En algunos casos la descarga nos  llevará a Google Play por lo que lógicamente necesitará también iniciar sesión con una cuenta de Google.

 

 

Algo de agradecer es que también podemos  instalar aplicaciones desde los propios archivos  de instalación (apk)  sin tener que relajar en la propia aplicación admitiendo fuentes desconocidas . De hecho,iniciar la instalación es tan fácil como hacer doble clic desde el explorador de  nuestro ordenador  sobre uno de estos archivos. Esto es así porque después de instalar BlueStacks en el PC, los archivos APK se asociarán automáticamente con BlueStacks

 

A pesar de los juegos  y la posibilidad  de instalar las apk directamente ,con toda  probabilidad  al poco de instalar  esta aplicación querremos instalar muchas mas aplicaciones  de forma similar a como lo hacemos  en un móvil Android: desde Google Play, para lo cual  necesitamos  haber iniciado sesión con nuestra  cuenta de Google,  buscar una aplicación que nos interese y  instalarla (recuerde  que más del 96% de los 1.4 millones de aplicaciones que estén disponibles en Google Play podrá instalarlas de este modo ​).

Dada la forma de trabajar  de este emulador, no solo las aplicaciones que instalemos aparecerán en la ventana principal ,  como vemos en la imagen de mas abajo, pues también aparecerán los acceso directos en nuestro escritorio Windows para lanzar precisamente esas mismas aplicaciones  pero desde el propio s.o.

 

Por ejemplo,  para acceder  directamente  a la aplicación TikTok  desde el escritorio Windows el acceso  sera algo similar  a ejecutar    lo siguiente «C:\Program Files\BlueStacks\HD-RunApp.exe» -json «{\»app_icon_url\»:\»\»,\»app_name\»:\»TikTok\»,\»app_url\»:\»\»,\»app_pkg\»:\»com.zhiliaoapp.musically\»}»

Afortunadamente este acceso directo  lo hará la propia aplicación BlueStacks  para cada app que instalemos  ,tanto desde Google Play, como desde el propio apk . En este punto destacar que si la app la instalamos desde Google Play solo  se mostrarán aplicaciones compatibles y que, por tanto , deberían funcionar bien en el emulador.

 

Ejemplo instalación de  TikTok

 
En el entorno de BletStacks podemos usar cualquier aplicación  Android como por ejemplo Tik Tok ,una aplicación que actualmente se ha puesto a la par con otras redes sociales como Instagram, pues su gran popularidad en los últimos años la ha llevado a convertirse incluso en la aplicación más descargada en 2019, superando nada más y nada menos que a WhatsApp.

Se trata de una red social asiática donde se pueden compartir vídeos cortos con música de fondo. En sus inició comenzó como una app de música (musically)  pero con el paso del tiempo se fue transformando a lo que hoy se conoce como Tik Tok.

Si bien esta aplicación va dirigida a dispositivos móviles, existe una forma bastante sencilla de instalarla a la PC con sistema operativo Windows. Lo que se debe hacer , como  amigo lector ya habrá intuido  es descargar el emulador Android BueStacks ( actualmente ya sabe  que el mejor emulador Android para pc )  desde  su página web oficial pues   como se mencionó, Tik Tok solo está disponible para teléfonos, por lo que es necesario descargar BlueStacks como paso previo.

Una vez instalado el emulador  ,tal y como hemos comentado, lo siguiente es introducir nuestras credenciales de  la cuenta Gmail para poder acceder a la tienda de aplicaciones  de Google Play . Una vez iniciada sesión en la cuenta se podrá buscar esta app en  la tienda Google Play Store   y seguir los pasos . 

Por supuesto al tener este emulador de Android BlueStacks , no solo se podrá descargar TikTok, sino también otras aplicaciones y juegos de Android con la consiguiente ventaja de no ocupar la preciada memoria de su terminal móvil.

La aplicación dispone de stickers para las stories donde muchas personas piensan que sus preguntas son realmente  anónimas

El usuario puede ingresar a la famosa aplicación desde el sitio oficial de Tik Tok, sin embargo, esta versión tiene muchas limitaciones que le impedirían al usuario disfrutarlo de un modo tan sencillo debido sobre todo  a la ausencia de interfaz táctil que debe simularse con  el ratón

VT-X is disabled in BIOS


Cada  vez existe mas software disponible para ejecutarse en entornos virtuales  destacando  cualquier sw de virtualización , aunque existe mucho mas sw  de otro tipo (como el desarrollo ), que también lo puede requerir ,como por ejemplo   sin ir mas lejos puede ser  el propio Google Android Studio , lo cual  intrínsecamente exigirá  una vez más que     la configuración del BIOS de su ordenador  este configurado  para permitir la virtualización.

En caso de no  tener  habilitado esta opción, como el lector  ya se habrá imaginado   obtendremos  el citado error :» VT-X is disabled in BIOS»  es decir que VT-x está desactivado (o que hace referencia a un problema con AMD-V si tiene una CPU AMD), lo que  significa que la configuración de aceleración de hardware requerida por la CPU para admitir la virtualización está actualmente desabilitada en su BIOS.

Bien, entonces   sabemos que tenemos que habilitar VT-x desde la BIOS para solucionar este inconveniente , pero el problema es  que el acceso al BIOS de un ordenador  diferirá de un fabricante a otro. Además, el mismo fabricante puede implementar diferentes versiones de BIOS según la antiguedad o el modelo de su ordenador.

Para acceder al BIOS, la mayoría de las ordenadores ofrecen un aviso para presionar una combinación de botón / botón para ‘ingresar a la configuración’ en los primeros segundos después de encender su ordenador antes que su sistema operativo comience a cargarse. En algunas máquinas, esta combinación de botón / botón lo llevará directamente a la configuración del BIOS, en otras máquinas puede encontrar un ‘Menú de configuración’ que incluirá una opción para ingresar al BIOS.

Si su ordenador no ofrece ninguna opción para acceder a su BIOS antes de que se cargue su sistema operativo, entonces es posible que use UEFI en su lugar. Lea más adelante en este post  para obtener información sobre cómo acceder al UEFI de su ordenador o en caso de no disponer de UEFI cuales son las opciones mas típicas para acceder a esta configuración.

Photo by Pixabay on Pexels.com

 

 

 

Ordenador basado en  UEFI 

En un ordenador basado en UEFI, a menudo no hay un botón para presionar antes de que se cargue el SO. 

En primer lugar  para saber  que verdaderamente tenemos activado  o no la funcionalidad VT-x  ejecutar  desde Cortana el interprete de comandos   mediante  la siguiente sentencia

cmd

Luego lanzar la utilidad de información del sistema:

systeminfo.exe

Nos debería dar un informe en pantalla similar al  siguiente :

En este caso nos interesa las tercera  fila empezando por el final. En caso de tener desactivada la virtualizacion en el firmware , tal y como vemos en la pantalla anterior, para habilitar la Tecnología Virtual o VT-x  siga los siguientes pasos para ir a la configuración de firmware BIOS / UEFI:

  •  Ir a la rueda de ajustes
  • Pulsar en Cambiar configuración de PC
  • Nos vamos a Actualización y recuperación
  • Pulsar en Recuperación
  • Haga clic en Reiniciar en Opciones avanzadas
  • Después Reiniciar
  • Ir a  Solucionar problemas
  • Opciones avanzadas
  • Configuración de firmware UEFI
  • Luego finalmente se reiniciara  pudiendo acceder  directamente a BIOS y en Configuración encontrará Tecnología virtual y la habilitará.Como ejemplo  en BIOS AMI de Asus:
      •  Opciones Avanzadas
      • Configuración de la CPU
      • Intel Virtualizacion Tecnology  (ojo tendra que hacer un scroll hacia abajo de  la pantalla pues no aparece directamente) 
      • Pulsar en el botón  de la derecha  junto al item para dejarla «Habilitada»

 

Ordenadores  sin UEFI

No todos los ordenadores admiten la opción Configuración de firmware UEFI en Opciones avanzadas,pero  en esos casos suele haber un botón directo para ir al BIOS. 

A continuación se muestra una lista de los fabricantes de ordenadores  más comunes e información sobre el acceso a la configuración del BIOS para cada fabricante.

Acer

Más comúnmente: F2 o Eliminar.En computadoras más antiguas: F1 o la combinación de teclas CTRL + ALT + ESC.

    1. Girar  EN  el sistema.
    2. Presione la   tecla F2 al iniciar la configuración del BIOS.
    3. Presione la tecla de flecha derecha hacia la   pestaña Configuración del sistema , seleccione  Tecnología de virtualización  y luego presione la  tecla Intro .
    4. Seleccione  Activado  y presione la   tecla Intro .
    5. Presione la   tecla F10 y seleccione    y presione la   tecla Entrar para guardar los cambios y  reiniciar  en Windows.

Asus

Más comúnmente: F2. Alternativamente: Eliminar o Insertar clave, y con menos frecuencia F10.

    1. Girar  EN  el sistema.
    2. Presione la   tecla F2 al iniciar la configuración del BIOS.
    3. Presione la tecla de flecha hacia la derecha hasta la  pestaña Avanzado  , seleccione  Tecnología de virtualización  y luego presione la   tecla Intro .
    4. Seleccione  Activado  y presione la   tecla Intro .
    5. Presione la   tecla F10 y seleccione    y presione la   tecla Entrar para guardar los cambios y  reiniciar  en Windows.

DELL

Modelos más nuevos: tecla F2 mientras el logotipo de Dell está en la pantalla. Alternativamente: F1, Eliminar, F12 o F3. Modelos más antiguos: CTRL + ALT + ENTRAR o Eliminar o Fn + ESC o Fn + F1.

    1. Girar  EN  el sistema.
    2. Presione la   tecla F2 al iniciar la configuración del BIOS.
    3. Presione la tecla de flecha derecha para la   pestaña Avanzado , seleccione  Virtualización  y luego presione la   tecla Intro .
    4. Seleccione  Activado  y presione la   tecla Intro .
    5. Presione la   tecla F10 y seleccione    y presione la   tecla Entrar para guardar los cambios y  reiniciar  en Windows.

HP

Más comúnmente: F10 o ESC.Alternativamente: F1, F2, F6 o F11.En las tabletas HP  : F10 o F12 

    1. Encienda el sistema
    2. Presione repetidamente la  tecla Esc  al inicio.
    3. Presione la   tecla F10 para la configuración del BIOS.
    4. Presione la tecla de flecha derecha hacia la   pestaña Configuración del sistema , seleccione  Tecnología de virtualización  y luego presione la  tecla Intro  .
    5. Seleccione  Activado  y presione la   tecla Intro .
    6. Presione la   tecla F10 y seleccione    y presione la   tecla Entrar para guardar los cambios y  reiniciar .

Lenovo

Más comúnmente: F1 o F2.Hardware antiguo: la combinación de teclas CTRL + ALT + F3 o CTRL + ALT + INS o Fn + F1.Si tiene un ThinkPad, consulte este recurso de Lenovo:  cómo acceder al BIOS en un ThinkPad .

Habilitación de VT-x en ThinkPad (tabletas / convertibles / portátiles):

    1. Pulsar el boton de encendido
    2. Presione  Entrar o  toque la pantalla táctil durante la  pantalla de inicio de Lenovo  .
    3. Presione o toque  F1 para ingresar a la configuración del BIOS.
    4. Navegue a  la  pestaña Seguridad , luego presione Entrar en  Virtualización .
    5. Seleccione Tecnología de virtualización Intel (R),  presione  Entrar  elija  Habilitar  y presione Entrar .
    6. Presione  F10.
    7. Presione  Entrar  en    para guardar la configuración e iniciar Windows.

 ThinkCentre (equipos de escritorio):

  1. Pulsar el boton de encendido
  2. Presione  Entrar  durante la  pantalla de inicio de Lenovo  .
  3. Presione  la tecla F1 para ingresar a la configuración del BIOS.
  4. Navegue a la  pestaña Avanzado y presione Entrar en  la configuración de la CPU.
  5. Seleccione Tecnología de virtualización Intel® (R),  presione  Entrar  elija  Habilitar  y presione Entrar .
  6. Presione  F10.
  7. Presione Entrar en    para guardar la configuración e iniciar Windows.

Sony

Sony VAIO: F2 o F3 Alternativamente: F1 .Si su VAIO tiene una tecla ASSIST, intente mantenerla presionada mientras enciende su ordenador

    1. Con el ordenador completamente apagado, presione y mantenga presionado el   botón Asistir hasta que aparezca la pantalla negra VAIO. NOTA:  La ubicación del   botón de Asistencia será diferente según el modelo de la computadora. Consulte las instrucciones de funcionamiento suministradas con la computadora para conocer la ubicación exacta del   botón Asistir en su modelo.
    2. En el  VAIOCare |  Pantalla de modo de rescate , presione la   tecla de flecha hacia abajo hasta que   se resalte la opción Iniciar configuración de BIOS [F2] y luego presione la   tecla Intro .
    3. En la   pantalla de la Utilidad de configuración [Nombre del BIOS] , presione la tecla de flecha derecha hasta que   se seleccione la pestaña Avanzado .
    4. En la   pestaña Avanzado , presione la tecla de flecha hacia abajo hasta que   se seleccione Tecnología de virtualización Intel (R) y luego presione la   tecla Intro . 
    5. Use las teclas de flecha para seleccionar  Activado  y luego presione la   tecla Intro .
    6. Presione la tecla de flecha derecha hasta que   se seleccione la pestaña Salir .
    7. Presione la tecla de flecha hacia abajo hasta que   se seleccione Exit Setup y luego presione la   tecla Enter .
    8. En la   pantalla Guardar , verifique que    esté seleccionado y luego presione la   tecla Intro .

Toshiba

Más comúnmente: tecla F2.  Alternativamente: F1 y ESC.Toshiba Equium: F12

        1. Girar  EN  el sistema.
        2. Presione la   tecla F2 al iniciar la configuración del BIOS.
        3. Presione la tecla de flecha hacia la derecha hasta la  pestaña Avanzado  , seleccione  Tecnología de virtualización  y luego presione la   tecla Intro .
        4. Seleccione  Activado  y presione la   tecla Intro .
        5. Presione la   tecla F10 y seleccione    y presione la   tecla Entrar para guardar los cambios y  reiniciar  en Windows.

 

OTROS MODELOS

Como se mencionó, los pasos necesarios para habilitar la virtualización pueden diferir de los anteriores, dependiendo de la versión del BIOS de su máquina, por lo que si ese es su caso, deberá buscar las opciones etiquetadas como ‘ Tecnología de virtualización ‘ o ‘ Tecnología de virtualización Intel® ‘ en la pestaña ‘ Configuraciones de CPU ‘, ‘ Configuraciones del sistema ‘,  ‘Avanzado’  , ‘ Seguridad ‘ o ‘ Procesador ‘ y verificar si la opción está habilitada o deshabilitada.

Con menos frecuencia, puede encontrar la configuración dentro del ‘ Chipset ‘ o ‘ Northbridge ‘ o la pestaña de overclocking específico del BIOS.

 

Notas finales

Si ha habilitado estas configuraciones dentro del BIOS o, si la ha habilitado, y todavía ve mensajes de error de su software de virtualización que hacen referencia a VT-X o AMD-V, entonces puede ser necesario deshabilitar Hyper-V en su ordenador 

Esto puede hacerse de la siguiente manera:

Vaya a Panel de control ->

Programas ->

Programas y características ->

haga clic en Activar o desactivar las características de Windows ->

desmarque Hyper-V ->

haga clic en Aceptar.

 

 

Asimismo también es importante tener en cuenta que una máquina VM de 64 bits no se ejecutará en un procesador de 32 bits . Sin embargo, es posible que pueda ejecutar una máquina virtual de 64 bits si tiene un procesador de 64 bits pero ha instalado un sistema operativo host de 32 bits y su procesador admite las extensiones correctas.

 

Como acceder a un W2000 desde W10 y no morir en el intento


Puede parecer descabellado en los tiempos  que corren que aún quede alguna máquina corriendo con Windows 200, pero  por extraño que puede parecer,  en  efecto para determinados servicios legados es posible que necesitemos conectarnos a esa máquina   mediante alguna utilidad  de escritorio remoto ( por ejemplo   mediante el famoso servicio VNC , o el viejo escritorio remoto  mstsc de Windows ,las cual sonra la manera estándar  de trabajar en ambiente Windows)   quizás para actualizar algún desarrollo de nuevo servicio  .

Bien  , quizás  lo «fácil»   sea  acceder mediante el  VNC , o el  mstsc de Windows dado   que son servicios prácticamente integrados en el so,  pero quizas  en realidad lo complejo se haga cuando la máquina está aislada de internet y tratemos de copiar ficheros desde o hacia  esa máquina  a  una local que ejecute un so actual como puede ser w10 +

Si lo intenta  , lo  primero    ya sabemos deberia ser  comprobar la  conectividad  a  esa máquina desde nuestro w10 ,para lo  cual lo  primero es lanzar el comando Ipconfig en el W2000   para saber la dirección IP del servidor

Como vemos en el ejemplo, puede haber diferentes IP’s asociadas al mismo equipo  , pero al menos la ip  de servicio o producción debería devolvernos el ping desde nuestro equipo a la Ip obtenida con el comando ipconfig

 

Una vez sepamos que hay conectividad tcp/ip desde nuestro w10 al w2000   tendremos que comprobar que tiene los servicios de transferencia de ficheros iniciados

 

Si ambas circunstancias se dan  y no puede copiar ficheros desde el terminal server  o desde una unidad de red , probablemente le falle por diversas causas  que vamos a  ver para intentar dilucidar;  

 

SMB1

Si intenta conectar dispositivos que solo admiten SMBv1 o si estos dispositivos intentan conectarse con usted, es posible que reciba alguno de los siguientes mensajes de error:

No se puede conectar con los recursos compartidos de archivos porque no es seguro. Este recurso compartido requiere el protocolo SMB1 obsoleto, el cual no es seguro y podría exponer su sistema a ataques.
Su sistema requiere SMB2 o superior. Para obtener más información sobre cómo solucionar este problema, visite: https://go.microsoft.com/fwlink/?linkid=852747.

Desde luego este error anterior es el más típico, pero  existen otros errores parecidos  que tiene mucha relación con el error anterior:

  • El nombre de red especificado ya no está disponible.
  • Error no especificado 0x80004005
  • Error de sistema 64
  • El servidor especificado no puede realizar la operación solicitada.
  • Error 58

Precisamente  SMBv1 no está instalado de forma predeterminada en Windows 10 versión 1709 ni en Windows Server versión 1709 y posteriores. Tampoco  en Windows 10 Fall Creators Update y Windows Server versión 1709 (RS3) y posteriores, el protocolo de red Bloque de mensajes del servidor versión 1 (SMBv1) no está instalado de forma predeterminada, poruqe desde 2017, se utiliza SMBv2 y protocolos posteriores. Microsoft desaprobó públicamente el protocolo SMBv1 en 2014.

SMBv1 tiene el siguiente comportamiento en Windows 10 Fall Creators Update y en Windows Server versión 1709 (RS3):

  • SMBv1 ahora tiene subcaracterísticas, tanto para el cliente como para el servidor, que pueden desinstalarse por separado.
  • Windows 10 Enterprise y Windows 10 Education ya no contienen SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
  • Windows Server 2016 ya no contiene SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
  • Windows 10 Home y Windows 10 Pofessional ya no contienen SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia.
  • Windows 10 Home y Windows 10 Professional ya no contienen SMBv1 para el cliente o el servidor de forma predeterminada después de una instalación limpia. Si SMBv1 para cliente no se utiliza durante 15 días en total (excepto cuando el equipo está apagado), se desinstala automáticamente.
  • Las actualizaciones directas y los pilotos de Insider de Windows 10 Home y Windows 10 Professional no quitan SMBv1 automáticamente desde el inicio. Si SMBv1 para el cliente o el servidor no se utiliza durante un total de 15 días (sin incluir el tiempo durante el que el equipo está apagado), cada uno se desinstala automáticamente. 
  • Las actualizaciones directas y los pilotos de Insider de Windows 10 Enterprise y Windows 10 Education no quitan SMBv1 automáticamente. Un administrador debe decidir desinstalar SMBv1 en estos entornos administrados. En Windows 10 versión 1809 (RS5) y versiones posteriores, un administrador puede activar la eliminación automática de SMBv1 activando la característica «Eliminación automática de SMB 1.0/CIFS».
  • Quitar automáticamente SMBv1 después de 15 días es una operación de un solo uso. Si un administrador reinstala SMBv1, no se harán más intentos para desinstalarlo.
  • Las características de los SMB versión 2.02, 2.1, 3.0, 3.02 y 3.1.1 aún son totalmente compatibles y se incluyen de forma predeterminada como parte de los archivos binarios de SMBv2.
  • Debido a que el servicio Explorador de equipos utiliza SMBv1, el servicio se desinstalará si SMBv1 para el cliente o el servidor también se desinstala. Esto significa que Explorer Network ya no puede mostrar a los equipos con Windows por medio del método de exploración de datagramas NetBIOS heredado.
  • SMBv1 aún puede reinstalarse en todas las ediciones de Windows 10 y Windows Server 2016.

Windows 10 versión 1803 (RS4) Profesional controla SMBv1 de la misma forma que la versión 1703 de Windows 10 (RS2) y Windows 10 versión 1607 (RS1). Este error se corrigió en Windows 10 versión 1809 (RS5). Todavía puede desinstalar SMBv1 manualmente. Sin embargo, Windows no desinstalará automáticamente SMBv1 después de 15 días en los siguientes escenarios:

  • Si realiza una instalación limpia de Windows 10 versión 1803.
  • Si actualiza Windows 10 versión 1607 o Windows 10 versión 1703 a Windows 10 versión 1803 directamente, sin actualizar primero a Windows 10 versión 1709.

 

Volver a activar SMBv1 en Windows 10

Con la nueva versión de Window 10 Fall Creators, microsoft a tomado la decisión de deshabilitar el protocolo SMB versión 1 ,después de todos los problemas sufridos por Wannacry,Petya… que aprovechaban una vulnerabilidad del protocolo.  Si no tenemos más remedio que habilitar SMB v1 en Windows 10  ,tendremos que abrir una consola de powershell como administrador y ejecutamos el  comando de activación de este protocolo, es decir seguiremos los siguientes pasos :

  1. Para activar el Power Shell debemos ejecutarlo como permisos de administrador
  2. Nos debe  salir una ventana de texto con el prompt   con el  PS
  3. Ejecutar la siguiente orden:  Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol
  4. Reiniciamos el sistema para aplicar los cambios
  5. En   teoría   ya deberíamos poder  acceder a los recursos compartidos.

Podemos volver a deshabilitar SMB v1 en cualquier momento con : Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

 

Windows 10 «el servicio de inicio de sesión de la red no se ha iniciado» y error 1068

Si a pesar de haber realizado el paso anterior cuando se intente conectar a una unidad de red aparece el error «el servicio de inicio de sesión de la red no se ha iniciado» lo  primero es averiguar los permisos

Si da igual con que usuario entre y  siempre sale ese error, probaremos   usando el usuario administrador.

)

 

Si entrando con el usuario administrador va buscando el problema, intentando cambiar el nombre del equipo (pero aparece en gris y sale un mensaje de que el servicio de «estación de trabajo no funciona» y no deja cambiar el nombre del equipo, nos deberíamos   ir a ver los servicios para intentar activar el servicio «estación de trabajo«

Si nos aparece  el error 1068  esto  significa «No se puede iniciar el servicio o grupo de dependencia».

El servicio Estación de trabajo tiene dos componentes que dependen de él

  • Los servicios Net Logon
  •  Configuración de Escritorio remoto.

Es posible que el servicio Net Logon tenga algún problema. Accede a la consola de servicios, desde la cuenta administrador y compruebe el servicio

Resolucion de problemas al ejecutar archivos con extension .ica


 Citrix es  una famosa  empresa  fundada en 1989 por el antiguo desarrollador de IBM Ed Iacobucci   y que acogio a muchos de los fundadores originales que habían participado en el proyecto OS/2 de IBM

Es ademas  una de las empresas pioneras, junto a Vmware, en virtualización de escritorios y aplicaciones . Ademas ha estado  muy unida a Microsoft desde sus orígenes.

Dispone de 3 familias de productos: 

  • Citrix Delivery Center (XenApp, XenDesktop, XenServer y Netscaler)
  •  Citrix Cloud Center: Permite crear nubes híbridas con soluciones en la nube,
  • Citrix Online Services: Que está unido a la aplicación GoToMeeting (herramienta videoconferencias) 

Citrix XenDesktop es  su producto estrella y en la versión 7 une en una suite XenApp (Aplicaciones) y XenDesktop (VDI).   Los componentes básicos de un sistema de este tipo   son los siguintes :

  • RECEIVER : Citrix Receiver el software cliente necesario para que se puedan entregar aplicaciones o escritorios . Es un elemento multiplataforma y multidispositivo, ya que existen clientes para Windows, Linux, Mac, Android o IOS entre otros.En este post vamos a hablar precisamente de los  problemas que puede dar
  • STOREFRONT :se comporta, como su propio nombre indica, como una tienda online que pone a disposición de los clientes aplicaciones y escritorios.  Básicamente es el frontal web que los usuarios ven y donde introducen sus credenciales.  Si surgen modificaciones, se actualiza automáticamente (se puede comprobar pulsando F5 en el navegador)
  • DELIVERY CONTROLLER : gestiona los accesos de los usuarios, optimiza las conexiones, hace de intermediario entre el resto de componentes y proporciona los servicios necesarios para la creación de máquinas.  Debe existir al menos un DC en la infraestructura, siendo recomendado tener más de uno (redundancia), ya que marcará la capacidad de gestionar más usuarios y aplicaciones.  Un DC saturado (normalmente CPU) puede provocar problemas en la plataforma y la base de datos.
  • BBDD: Tradicionalmente se monta sobre SQL Server (no todos los componentes admiten SQL Express) . Existen 3 bases de datos en toda instalación XenApp / XenDesktop:
    • Site: Configuración Site en ejecución y estado
    • Configuration Logging: Registro de la actividad administrativa
    • Monitoring: Almacena los datos de Director (inicio sesión y conexión).Sólo los DCs se conectan con la Base de Datos
  •  STUDIO : es la consola de administración tanto para escritorios como para aplicaciones .En Studio se pueden gestionar otros componentes como las licencias o storefront. .Adicionalmente, desde Studio se gestiona la publicación de aplicaciones y escritorios.  También se gestionan las sesiones conectadas en vivo y se pueden lanzar acciones sobre ellas.
  •  LICENSE SERVER  Componente que gestiona las licencias de los productos, al que consulta Citrix Delivery Controller para validar las sesiones . Consola web, que puede gestionarse desde Citrix Studio
  •  DIRECTOR : Es un componente WEB que permite monitorizar en tiempo real sesiones de Citrix.  Es posible extraer informes históricos de tiempos de sesión de un grupo o usuario.
  •  VIRTUAL DELIVERY AGENT  o VDA es el agente necesario en la infraestructura servidora o clientes de escritorio para que exista la comunicación con los Delivery Controller y poder ofrecer esos recursos (aplicaciones o VDI) a los usuarios finales.  En un servidor Windows permite que varios usuarios se conecten a la vez. En un escritorio Windows permite la conexión de un solo usuario.
  •  ACTIVE DIRECTORY:aunque no es un componente directo en la instalación de Citrix, sí se convierte en un requisito.  En directorio activo se configuran los usuarios y contraseñas que tendrán acceso. Así como las GPOs necesarias para implementar con seguridad y optimización la plataforma.
  • OTROS COMPONENTES 
    • Netscaler: Cortafuegos, balanceo de carga, entrega de aplicaciones a través de la red y optimización de aplicaciones 
    • Branch Repeater: Optimiza la entrega de las aplicaciones a los usuarios ubicados en sucursales (Appliance) 
    • EdgeSight: Monitoriza el rendimiento de las aplicaciones (integrado en Director) 
    • Sharefile: Herramienta para compartir archivos de forma segura 
    • Citrix WEM: Gestor de directivas que sustituye ciertas funciones de Active Directory para acelerar el logon. 
    • Netscaler Insight Center: Dispositivo virtual para el seguimiento, análisis y generación de informes sobre aplicaciones.
    • etc

 

Citrix Virtual Apps es un software de virtualización de aplicaciones producido por la famosa empresa  Citrix Systems   que permite acceder a las aplicaciones de Windows a través de dispositivos individuales desde un servidor compartido o un sistema en la nube  (siendo lo mas típico en un ambiente empresarial que estas estén disponibles a través de un servicio VPN)

Dentro de esta estrategia propietarias  del fabricante Citrix , los archivos con con las extensiónes  .ica  de  Independent Computing Architectureson lo que los convierte  literalmente  en archivos de configuración de  siendo  exclusivamente  utilizados precisamente por  esos  programas de Citrix para invocarse en remoto ayudándose precisamente de la configuración que se haya hecho en estos archivos  que se descargan en local desde el portal empresarial .

Estos ficheros ,de hecho, se pueden abrir con un editor de texto ASCII para ver así su contenido, aunqu,  en realidad tiene poco sentido verlos  pues sólo se pueden iniciar en el otro extremo  del cloud  con una de las aplicaciones compatibles de Citrix.

Por tanto , precisamente mediante estos archivos ICA se lanzan las aplicaciones remotamente a utilizando Citrix XenClient , el programa Citrix XenApp o sobre todo  el conocido programa  Citrix Receiver.

Si tiene problemas a la hora de ejecutar algunos de estos ficheros .ica  lanzados  desde un ambiente corporativo o empresarial  (  como por ejemplo que no se pueden abrir las aplicaciones , solo deja guardar los archivos ica ,aparece una ventana que se cierrra en blanco, etc. ),  puede intentar  seguir los siguientes pasos para intentar ejecutar estas aplicaciones virtualizadas:

 

Paso 1: Descargue el nuevo cliente de Citrix

A fecha de agosto de 2018, Citrix Workspace app  es la la sustitutade   Citrix Receiver. Por lo tanto la aplicación Citrix Workspace App es el nuevo cliente de Citrix que actúa de forma similar a Citrix Receiver y es totalmente retrocompatible (o al menos en eso dice el fabricante)   con la infraestructura Citrix de su organización. La aplicación Citrix Workspace App proporciona las capacidades completas de Citrix Receiver, así como nuevas capacidades basadas en la implementación de Citrix de su organización razon por la que el fabricante Citrix  recomienda que se descargue la aplicación Citrix Workspace.

La aplicación Citrix Workspace es el software de cliente fácil de instalar que ofrece un acceso seguro y sin inconvenientes a todo lo necesario para hacer todo lo que quiera. Con esta descarga gratuita, puede acceder de forma fácil y segura a todas las aplicaciones, escritorios y datos desde cualquier dispositivo, incluyendo teléfonos inteligentes, tabletas, PCs y Macs

.Descarga para Windows


La aplicación Citrix Workspace sustituye de forma automática muchas versiones anteriores de Citrix Receiver y los complementos en línea de Citrix; sin embargo, deben eliminarse manualmente algunas versiones antes de instalar la aplicación Citrix Workspace , siendo lo mejor que se haga con la utilidad especifica. de ReceiverCleanupUtility

Paso 2: Acceso desde el VPN a la url de su organización

En al mayoria de lso casos  necesitara  abrir una URL adecuada en su navegador para autenticar su espacio de trabajo digital Citrix con todas sus aplicaciones, escritorios y datos. En ocasiones incluso , puede que necesite configurar su cuenta indicando su correo electrónico o una dirección de servidor para autenticar con la aplicación Workspace para usar aplicaciones y escritorios virtuales. Puede preguntar a su administrador de sistemas qué pasos seguir en su situación pues no solo necesitara  esa url : tambien necesitara la instalación del cliente Citrix en la justa version que haya decidido su organizacion.

Paso 4-Fuerce la ejecución de los achivos

La aplicación Citrix Workspace App es un nuevo cliente de Citrix que actúa de forma similar a Citrix Receiver y es totalmente retrocompatible con la infraestructura Citrix de su organización  proporcionando las capacidades completas de Citrix Receiver, así como nuevas capacidades basadas en la implementación de Citrix de su organización.

Una vez instalado el cliente , cuando acceda desde su portal a la apliacion virualizada , haga clic derecho en el archivo ICA para abrir el menú contextual del archivo.Luego haga clic en la opción «Abrir con» y una lista de programas se abrirá.

Desplázese y haga clic en «Citrix XenApp» o «Citrix XenClient» :el programa Citrix debería  abrirse y lanzará la aplicación remota definida en el archivo ICA.

 

 

Paso 5; Instale  versiones anteriores

Puede que no siempre   estén al dia  en su organizacion con la ultima  version de Citrix en el lado servidor  , por lo que deberá  encontrar versiones anteriores de Receiver en el sitio web de descargas de Citrix.  por lo que debería confirmar con su administrador de sistemas que necesita una versión anterior de Citrix Receiver antes de continuar.

Antes de proceder,primero  debería desistalar  todo el sw de Citrix con  la herramientas especifica : ReceiverCleanupUtility

Una vez desistalado  todo si su aplicación  Citrix  no le funciona   con la  ultima version del cliente  entonces intente descargar alguna version anterior , por ejemplo Receiver 4.9 LTSR for Windows desde https://www.citrix.es/downloads/citrix-receiver/legacy-receiver-for-windows/receiver-for-windows-49LTSR.html

Instalar este cliente es bien sencillo  pues basta descargarlo  yen seguida   ya debería comenzar el asistente de  instalación 

Inmediatamente   simplemente le daremos al botón «Iniciar»

 

 

Una vez leída la licencia deberíamos darla a «Siguiente»

 

 

 

Finalmente  aparecerá la ventana de instalación completada junto al botón de Agregar cuenta , el cual la mayoría de los casos es completamente  innecesario

 

 

Como ve querido lector ,en el caso de tener el servicio  disponible si nos falla probablemente se deba a la version del cliente Citrix que tengamos instalados. Citrix  por su parte , si todo lo demas fallo , reconoce ciertos errores  a los que da  ademas un modo de solucionarlos   en la siguiente url   https://docs.citrix.com/es-es/citrix-workspace-app-for-linux/troubleshooting.html

 

Ingeniería inversa con java


Si alguna vez  ha tenido un proyecto java compilado en forma de fichero .class  o .jar   y necesita conocer como esta construido el código para  hacer ingeniería inversa o simplemente para investigar su  funcionamiento,  la herramienta que vamos a ver, lo hace de maravilla ! y además es gratuita!, veamos en detalle en que consiste.

En  efecto el «proyecto Java Decompiler» tiene como objetivo desarrollar herramientas para descompilar y analizar el «código de bytes» de Java 5 y las versiones posteriores siendo  JD-GUI la utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos «.class».

Con esta herramienta puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos Incluso puede integrarse  con el IDE de Eclipse  gracias a  JD-Eclipse, que  es un complemento para la plataforma Eclipse.

La herramienta le permite mostrar todas las fuentes Java durante su proceso de depuración, incluso si no las tiene todas. JD-Core es una biblioteca que reconstruye el código fuente de Java de uno o más archivos «.class». JD-Core se puede usar para recuperar el código fuente perdido y explorar la fuente de las bibliotecas de tiempo de ejecución de Java.

Se admiten las nuevas características de Java 5, como anotaciones, genéricos o tipo «enum». JD-GUI y JD-Eclipse incluyen la biblioteca JD-Core. JD-Core, JD-GUI y JD-Eclipse son proyectos de código abierto publicados bajo la licencia GPLv3.

Veamos un poco algo sobre la historia de esta  interesante  herramienta:

  • En 2011, Alex Kosinsky inició una variante de JD-Eclipse que admite la alineación del código descompilado por los números de línea de los originales, que a menudo se incluyen en el Bytecode original como información de depuración.
  • En 2012, una rama de JDEclipse-Realign de Martin «Mchr3k» Robertson  extendió la funcionalidad mediante el control de descompilación manual y el soporte para Eclipse 4.2 (Juno).
  • Y llegamos a la actualidad    D (Java Decompiler) ,  es un decompilador para el lenguaje de programación Java.Se proporciona como una herramienta GUI, así como en forma de complementos para los entornos de desarrollo integrado Eclipse (JD-Eclipse) e IntelliJ IDEA (JD-IntelliJ).Es compatible con la mayoría de las versiones de Java desde 1.1.8 hasta 1.7.0, así como JRockit 90_150, Jikes 1.2.2, Eclipse Java Compiler y Apache Harmony y, por lo tanto, a menudo se utiliza donde anteriormente se operaba el popular JAD

Java decompiler

Instalación

Se puede descargar directamente desde  su pagina de Github

La versión ultima   disponibles  es la 1.5.2

Esta versión incluye los siguientes cambios:

  • Actualizando JD-Core a 1.0.3
  • Adición de soporte de archivos AAR (archivo de Android)
  • Adición de soporte de archivos JMOD (módulo Java 9)

Este   es el enlace para descargar el  jd-gui-windows-1.5.2.zip   que es la versión  que   funciona sobre windows.

Descomprimimos el  ficherpo zip ( https://github.com/java-decompiler/jd-gui/releases/download/v1.5.2/jd-gui-windows-1.5.2.zip)

Finamente lanzaremos la aplicación  jd-gui.exe

JD-GUI es una utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos «.class»  y también  «.jar»  . Puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos.

Existe JD-Eclipse es un complemento para la plataforma Eclipse. Le permite mostrar todas las fuentes Java durante su proceso de depuración, incluso si no las tiene todas.

JD-GUI es una utilidad gráfica independiente que muestra los códigos fuente de Java de los archivos «.class». Puede explorar el código fuente reconstruido con la GUI de JD para obtener acceso instantáneo a los métodos y campos.

Mas  información en su sitio  http://java-decompiler.github.io/

Cómo enviar correos de forma masiva gratis y sin limite


Si alguna vez  se  ha preguntado cómo enviar correos electrónicos de forma masiva  y prácticamente  sin límite  sin caer en spam , o lo que es lo mismo,  mandar emails,  newsletter o boletines a  destinatarios que haya recopilado con el consentimiento de esas personas, así como  a listas de correos, sin necesidad de ir enviándolos uno a uno,   en  este post   vamos  a ver como gracias al veterano servicio de calidad de  Mailrelay con más de 15 años online, usado  tanto de forma personal como profesional ,  es en realidad una  tarea bastante sencilla  hacerlo y todo ello sin coste alguno   usando este servicio web    que además  cuenta   prácticamente  una capacidad ilimitada (es decir 75.000 emails al mes, y gestión de hasta 15.000 suscriptores).  

Quizás  lo más  interesante de destacar es que el servicio de Mailrelay al contrario de otros servicios , es   gratuito  sin publicidad en las newsletters  pues  otros servicios  similares   ponen muchas trabas, y se aprovechan insertando publicidad , incluso en cuentas de pago básicas en algunos casos,   y además no tiene  límite de envío diario, no tiene  limitaciones de funcionalidades y ofrecen  soporte gratuito  ¿Por qué gastar esfuerzos de marketing en publicitar o r anunciar otra empresa?

En efecto   gracias a Mailrelay es posible  crear newsletter, enviar mailings, gestionar listas de suscriptores y analizar  campañas de email de   una forma  gratuita  y más ahora  que    ha sido actualizada  y mejorada  en  nueva version 3 que como vamos    ver en este video  hace  que sea realmente sencillo lanzar este tipo de e-mails

 

Como vemos  en el video esta nueva version V3  de Mailrelay cuenta  nuevo dashboard principal con menú superior y resumen de las últimas campañas,nuevo y potente editor drag & drop (que facilita la creación de newsletters, con bloques para redes sociales, vídeo, texto, grupos de imágenes, columnas, etc)  ,estadísticas mejoradas con más información y en tiempo real,posibilidad de segmentación por grupos de forma tradicional o utilizando los nuevos segmentos dinámicos ,automatismos mejorados y ampliados en base a registros, click o apertura de boletín , etc

De hecho  más de 200.000 clientes en todo el mundo incluyendo grandes empresas   lo están usando como  puede apreciarse  en el gráfico de abajo

 

Veamos  a continuación cómo realizar una  sencilla campaña con  Mailrelay   ,donde como  vamos a ver,  no es demasiado  difícil  pues la operativa se  reduce a la importación de   los contactos, crear una newsletter, enviarlas   y `por supuesto realizar   un seguimiento estadístico de todo,

Bien  veamos  como hacerlo  usando esta  veterana herramienta.

 

 

1- Importación de  contactos y creación de  lista de suscriptores

Suponiendo que tengamos cuenta gratuita con  Mailrelay , lo primero que tenemos que hacer es crear la «ubicación» donde vamos a incluir » nuestros contactos.Tenemos dos opciones bien diferenciadas: Grupos  y Segmentos .( los segmentos se diferencia porque los contactos que hay en ellos deben cumplir una condición y son dinámicos, por lo que su número de suscriptores es variable.)  Nos  iremos al menú «suscriptores» -> «grupos» y en esta pantalla haremos clic en el botón «añadir», para crear un nuevo grupo.

Crear un grupo es muy sencillo pues solo tenemos dos valores posibles para darle: Nombre  y Descripción ( !ojo pues esta es  solo un valor interno,  para que podamos organizar nuestra lista de contactos») .Añadiremos  un nombre al grupo y haremos click en «crear grupo».

Una vez hemos hecho clic en crear grupo veremos esta pantalla:

mailrelay email marketing tutorial v3

Ahora realizaremos una nueva importación, haciendo click en el botón «nueva importación» que podemos ver a continuación:

mailrelay email marketing tutorial v3

En la siguiente pantalla, vamos a ver las opciones de importación de las que disponemos actualmente Veamos las opciones:

  1.  Copiar y pegar
  2.  Subir Archivos > importar de un txt o CSV esta es la que usaremos ahora
  3.  Importar desde Mailchimp >

Al  marcar la opción, aparece un recuadro donde podemos arrastrar el fichero a subir. Puede importar un fichero CSV o TXT (también ha de estar separado por comas).En realidad no importa demasiado cuántos valores tengamos, pero debemos respetar que solo tengamos un contacto por línea, y que los campos estén separados por comas.

Bien, una vez tengamos ese fichero, lo que haremos será arrastrarlo a la casilla donde pone «arrastra el archivo». Una vez se haya subido el fichero, vamos a ver una pantalla bastante similar a la siguiente:

Como vemos en la imagen hay tres  puntos clave:

  1.  Campos y columnas: iremos usando  los desplegables y nos ayudaremos de la vista previa de los datos. En los desplegables de campo  hay campos de tipo «incorporado», campos que existen por defecto en el sistema, como nombre, dirección, ciudad, etc. No es necesario que los cree, simplemente importe los datos en ellos.
  2.  Importar en los grupos. Aquí elegiremos el grupo al que queremos importar los contactos (, solo tenemos que hacer click y seleccionarlo) 
  3.  Opciones adicionales. Por último podemos elegir qué hacer con los contactos existentes, si bien ignorarlos (los saltamos y no hacemos nada) o los sobreescribimos

Ahora solo queda hacer click en «importar» y se realizará la importación  del contenido del fichero  csv a la bbdd del servicio de Mailrelay .Una vez finaliza la importación de contactos veremos un pequeño resumen,con  el listado de emails importados, y el resultado, por si hubiera habido algún error o problema con el email en cuestión..

 

2· Crear una newsletter con el editor drag & drop de Mailrelay

Esta  nueva versión de Mailrelay incluye varias opciones para crear nuestros boletines, opción que  podemos ver en el menú «Boletines» –>«Boletines».

Aquí, si hacemos click en el botón «Añadir» como en los menús anteriores, veremos una pantalla  con cuatro opciones de edición de boletines:

  1.  Crear boletín. Con esta opción haremos uso del editor drag & drop para crear nuestro diseño de newsletter de forma fácil y rápida
  2.  Pegar código. Si disponemos de un diseño de boletín en html, podemos importarlo pegándolo directamente en un editor clásico
  3.  Subir archivo zip. Funciona igual que la opción anterior, pero importando directamente
  4.  Importar desde una URL. Otra función similar, en esta ocasión importaremos desde una URL. Importante: las páginas web hacen uso de CSS, Javascript externos, menús, etc. Por lo que no se importarán bien, o no se enviarán bien como un email. No importes la URL de una web
Elegimos la opción «crear boletín», y lo primero que tendremos que hacer será rellenar    la típica información que enviaríamos en un e-mail:
  1.  Asunto. El asunto de nuestro email, el subject o título, es lo que verán los contactos al recibir en su cliente de correo.
  2.  Previsualizar texto. Es el texto de la precabecera, un pequeño texto que aparece después del asunto en algunos clientes de correo.
  3.  Remitente. Aquí pondremos el email de remitente que vamos a emplear, por defecto podemos elegir el email con el que hemos creado la cuenta.
  4.  Grupos. Y el grupo que hemos creado lo seleccionaremos aquí.

Cuando ya lo tenemos todo listo, haremos click en el botón «Siguiente» de la esquina inferior derecha y  pasaremos a una pantalla donde podremos seleccionar una plantilla de base . Podemos elegir la que queramos y haremos  click de nuevo en «siguiente».

► El editor drag & drop para crear newsletters

Este editor es muy sencillo de utilizar pues tenemos dos espacios bien diferenciados, a la izquierda la visualización de la plantilla.Lo  destacado es que si pasa sobre cualquier elemento verá que se superpone un menú flotante que nos permite: Mover el elemento, Editarlo,Duplicarlo o eliminarlo. Asimismo en las imágenes verá también la opción de «buscar imagen» para sustituir la imagen por defecto por una de las que tenga en su equipo.

Bien,  en la parte  derecha veremos esto:

opciones del editor de Mailrelay

Como vemos ,los elementos que tenemos disponibles son:

  1.  Texto. Para insertar un cuadro de texto, donde poder escribir, insertar enlaces, y en general darle el formato que queramos.Los bloques de texto funcionan igual que las imágenes, solo tiene que arrastrar el bloque en cuestión a la zona donde quieras ubicarlo.Recuerde, una vez arrastrado el bloque de texto, hacemos clic en «editar»:Tenemos tres opciones:
    1.  Contenido. Este será el contenido de texto del bloque
    2.  Diseño. Valores como tipo de fuente, tamaño, alineación, etc
    3.  Configuración. Número de columnas
  2.  Imagen. Nos permite insertar una imagen.Si ya tenemos un elemento de imagen solo tenemos que hacer click en el botón «buscar imagen», y si no, primero arrastraremos un elemento de tipo «imagen»a la zona de edición.Al hacer click en «buscar imagen» y en la caja donde pone «Drop files here to upload»?Aquí podremos pinchar y elegir la imagen de nuestro equipo, o arrastrar la imagen, con lo cual la veremos aparecer.Una vez hecho eso, solo tenemos que hacer click en la imagen que queremos utilizar, se situará en la parte izquierda, y podremos hacer click en el botón «usar archivo», lo que hará que la imagen aparezca en el editor de esta forma:
  3.  Imagen con leyenda. Si tenemos que poner una imagen que incluya una leyenda.Para empezar solo tenemos que arrastrar este bloque a donde queramos posicionarlo.Elegiremos
    1. Número de imágenes. Elegiremos  las imágenes que deseemos incorporar
    2.  Posición de las columnas. Podemos tenerlas una al lado de otra, o una encima de la otra
    3.  Posición de la leyenda. Esto hace referencia a la posición del texto, arriba de la imagen, o debajo
  4.  Grupo de imágenes. Para insertar más de una imagen en nuestra newsletter
  5.  Botones de redes sociales
  6.  Divisor
  7. Vídeo

Con estas opciones tendremos más que suficiente para crear un buen diseño para nuestro email.

Estos elementos los podemos arrastrar a la parte izquierda para crear elementos de forma fácil, como vemos en la siguiente imagen:

 

► Añadir el nombre del contacto

Antes hemos subido nuestra lista de contactos incluyendo el nombre, así que quizás  se pregunte ¿cómo incluimos el nombre en la newsletter? Pues editaremos el bloque de texto donde queremos incluir el nombre, posicionamos el cursor del ratón donde queremos añadir el nombre y utilizamos el desplegable «Variables» , En el mismo bajamos hasta encontrar la sección «Suscriptor» y elegimos la opción «Nombre» y ya cuando envíe la newsletter esta variable se sustituirá por el nombre del contacto en cuestión.

► Añadir  el enlace de baja

Al igual que en el caso anterior, vamos a utilizar el editor, pero en este caso, la variable que seleccionaremos será una de las opciones de «URLs de baja»:

editor de newsletter mailrelay enlace de baja

Tenemos varias opciones aquí:

  1.  URL de baja normal. Cuando el suscriptor hace click, se da de baja inmediatamente
  2.  URL de baja con confirmación por email. Cuando el suscriptor hace click recibe un email de baja en el que ha de hacer click para confirmar
  3.  URL de baja de grupo. Solo da de baja al suscriptor en el grupo en el que ha realizado el envío

Si hace click en esta opción, verá que inserta en el editor algo como esto:{{ unsubscribe_url }}

Y ya está. Ahora que tenemos la newsletter lista y preparada, la guardamos utilizando el botón de la esquina inferior derecha:

guardar plantilla de newsletter

 

3· Enviar una newsletter 

Vamos a entrar en la última parte  realizando el envío del boletín, así que lo  primero que tenemos que hacer es volver al menú «Boletines»– «Boletines», y ahi veremos un listado de los boletines ,.

Ahora miremos un poco más a la derecha:verás por cada línea, una serie de iconos como estos:

enviar newsletter gratis con Mailrelay

De izquierda a derecha esos enlaces  tienen esta  funcionalidad:

  1.  Enviar newsletter ( no esta por casualidad en primer lugar) ,Al hacer click en el mismo veremos una pantalla de errores posibles.Lo bueno, es que si hace click en los enlaces, puede ver cómo se deben realizar estas configuraciones.
  2.  Duplicar
  3.  Mostrar (visualizar el boletín)
  4.  Editar
  5.  Borrar

 

enviar newsletter gratis con mailrelay

 

Si seguimos un  poco más abajo tenemos otras dos opciones más:

  1.  Enviar boletín a un grupo o segmento. Opción con la que podríamos enviar el boletín al grupo donde hemos importado los suscriptores.
  2.  Enviar un boletín de prueba. De esta forma nos podemos enviar una prueba de boletín, para ver cómo queda la newsletter en nuestro cliente de correo
  3. Y para terminar  como tercer punto podemos ver que es posible programar el envío para una fecha determinada o enviar la newsletter en ese momento

Bueno, en todo caso  pulsando el primer botón de enviar newsletter , ya tendremos nuestro mailing enviado por lo que sólo nos queda comprobar que efectivamente ya se ha enviado  asi como lo datos estadisticos.

 

4- Las estadísticas del envío 

Es interesante cerciorarse que en efecto el envío de la newsletter se ja realizado con éxito , así que nos  iremos al menú «informes» – «boletines enviados». Aquí vemos una lista de los boletines enviados:

listado de mailings enviados

Es importante fijarse  que el estado indique  «completado», ya que en otro caso indicaría si está en proceso o cualquier posible error.

También en esta pantalla de boletines enviados podemos ver un pequeño resumen, de emails enviados, visualizaciones y clicks, aunque de todas formas si queremos ver el detalle del envío podemos hacer click en el asunto de la newsletter e iremos a una pantalla con más detalle:

estadísticas de mailing

Como  podemos ver en esta pantalla a modo de  resumen rápido y general podemos  ver información rápida de: Emails entregados, cantidad y porcentaje, Emails rebotados, Visualizaciones y porcentaje (es posible que un mismo suscriptor abra varias veces el email) y  Clicks y porcentaje

Pero ademas fíjese que tenemos más menús, al lado de la flecha: Emails enviados, Visualizaciones, Clicks, Baja y  Reenviado. En estos menús tenemos mucha más información, como los contactos que han abierto, los que han hecho click, el mapa de click,geolocalización, etc .

Si le interesa en su blog  puede ampliar mas información al respecto .

 

 

 

Creemos  que para una primera toma de contacto, ya hemos visto los aspectos más importantes de lo que se puede hacer con una nueva cuenta de Mailrelay en su nueva version  V3  ,  que como decíamos en la introducción, es uno de  las pocas servicios gratuitos ,·que no tiene límite diario de envío, y  que  como hemos visto , incluye  una ingente  número de funcionalidades  extra  .

Además  un aspecto que no debemos  desdeñar de la  funcionalidad de Mailrelay ,  es que  no incluyen publicidad en sus newsletters, pues la verdad suena un poco anacrónico que para  intentar informar de algún producto nuevo , una novedad  o lo  que sea que queramos enviar a nuestra  base de clientes  o usuarios   tengamos  que incluir publicidad  de terceros ¿a  que sonaría bastante raro verdad?