Python

  • Aprendiendo a programar con Python 3

    Taller orientado a personas que no tengan experiencia previa en programación y deseen aprender utilizando un lenguaje potente y fácil de aprender como lo es Python 3.

    ¿Cuándo?: Miércoles 11 de Mayo de 3 pm a 5 pm

    ¿Dónde?: Vivelab Bogotá Av el dorado carrera 45 No 26 – 33

    Entrada libre, para participar inscríbete en:
    https://www.eventbrite.es/e/entradas-aprendiendo-a-programar-con-python-3-24751321870

     

    ChpOkp2W0AA Rp

  • Corriendo código Fortran sobre Python (Debian) { Notas de Laboratorio }

    22Diciembre2017numpyW

    Como nota de laboratorio, básicamente p2py es una herramienta que permite utilizar código Fortran en scripts de python, aunque tal vez Fortran no es un lenguaje que hoy en día marque una tendencia tecnológica, es un hecho que existen investigadores que tienen desarrolladas rutinas computacionales estables sobre dicho lenguaje, teniendo sentido no reescribir la rueda y continuar su uso desde un entorno python.

    Su instalación sobre un equipo que utiliza una versión de Debian (8.9):

    Para proveer p2py es necesario tener numpy instalado:

    apt install python-numpy

    El tutorial que estamos siguiendo es https://docs.scipy.org/doc/numpy-dev/f2py/getting-started.html. Básicamente intentan correr un código en Fortran que calcula la serie fibonacci. No voy a copiar el código Fortran que ellos usan, lo que si menciono es que localmente en este ejemplo lo hemos guardado como en el archivo "fibonnacci.f" (no olvidar la extensión), intentamos pues correrlo y crear el archivo importable posteriormente desde Python:

    f2py -c fibonacci.f -m fibonacciComp

    Al final de todo el proceso nos genera un error:

    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building extension "fibonacciComp" sources
    f2py options: [ ]
    f2py:> /tmp/tmpHgFRJC/src.linux-x86_64-2.7/fibonacciCompmodule.c
    creating /tmp/tmpHgFRJC/src.linux-x86_64-2.7
    Reading fortran codes...
    Reading file 'fibonacci.f' (format:fix,strict)
    Post-processing...
    Block: fibonacciComp
    Block: fib
    Post-processing (stage 2)...
    Building modules...
    Building module "fibonacciComp"...
    Constructing wrapper function "fib"...
    fib(a,[n])
    Wrote C/API module "fibonacciComp" to file "/tmp/tmpHgFRJC/src.linux-x86_64-2.7/fibonacciCompmodule.c"
    adding '/tmp/tmpHgFRJC/src.linux-x86_64-2.7/fortranobject.c' to sources.
    adding '/tmp/tmpHgFRJC/src.linux-x86_64-2.7' to include_dirs.
    copying /usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.c -> /tmp/tmpHgFRJC/src.linux-x86_64-2.7
    copying /usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.h -> /tmp/tmpHgFRJC/src.linux-x86_64-2.7
    build_src: building npy-pkg config files
    running build_ext
    customize UnixCCompiler
    customize UnixCCompiler using build_ext
    customize Gnu95FCompiler
    Could not locate executable gfortran
    Could not locate executable f95
    customize IntelFCompiler
    Could not locate executable ifort
    Could not locate executable ifc
    customize LaheyFCompiler
    Could not locate executable lf95
    customize PGroupFCompiler
    Could not locate executable pgfortran
    customize AbsoftFCompiler
    Could not locate executable f90
    Could not locate executable f77
    customize NAGFCompiler
    customize VastFCompiler
    customize CompaqFCompiler
    Could not locate executable fort
    customize IntelItaniumFCompiler
    Could not locate executable efort
    Could not locate executable efc
    customize IntelEM64TFCompiler
    customize GnuFCompiler
    Could not locate executable g77
    customize G95FCompiler
    Could not locate executable g95
    customize PathScaleFCompiler
    Could not locate executable pathf95
    don't know how to compile Fortran code on platform 'posix'
    warning: build_ext: f77_compiler=None is not available.

    building 'fibonacciComp' extension
    error: extension 'fibonacciComp' has Fortran sources but no Fortran compiler found

    Tiene todo el sentido del mundo, si vamos a compilar código Fortran, se necesita un compilador de Fortran...instalamos uno:

    apt install gfortran

    Intentamos de nuevo:

    f2py -c fibonacci.f -m fibonacciComp

    y se obtiene:

    running build
    running config_cc
    unifing config_cc, config, build_clib, build_ext, build commands --compiler options
    running config_fc
    unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
    running build_src
    build_src
    building extension "fibonacciComp" sources
    f2py options: [ ]
    f2py:> /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fibonacciCompmodule.c
    creating /tmp/tmpTVbfs7/src.linux-x86_64-2.7
    Reading fortran codes...
    Reading file 'fibonacci.f' (format:fix,strict)
    Post-processing...
    Block: fibonacciComp
    Block: fib
    Post-processing (stage 2)...
    Building modules...
    Building module "fibonacciComp"...
    Constructing wrapper function "fib"...
    fib(a,[n])
    Wrote C/API module "fibonacciComp" to file "/tmp/tmpTVbfs7/src.linux-x86_64-2.7/fibonacciCompmodule.c"
    adding '/tmp/tmpTVbfs7/src.linux-x86_64-2.7/fortranobject.c' to sources.
    adding '/tmp/tmpTVbfs7/src.linux-x86_64-2.7' to include_dirs.
    copying /usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.c -> /tmp/tmpTVbfs7/src.linux-x86_64-2.7
    copying /usr/lib/python2.7/dist-packages/numpy/f2py/src/fortranobject.h -> /tmp/tmpTVbfs7/src.linux-x86_64-2.7
    build_src: building npy-pkg config files
    running build_ext
    customize UnixCCompiler
    customize UnixCCompiler using build_ext
    customize Gnu95FCompiler
    Found executable /usr/bin/gfortran
    customize Gnu95FCompiler
    customize Gnu95FCompiler using build_ext
    building 'fibonacciComp' extension
    compiling C sources
    C compiler: x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -D_FORTIFY_SOURCE=2 -g -fstack-protector-strong -Wformat -Werror=format-security -fPIC

    creating /tmp/tmpTVbfs7/tmp
    creating /tmp/tmpTVbfs7/tmp/tmpTVbfs7
    creating /tmp/tmpTVbfs7/tmp/tmpTVbfs7/src.linux-x86_64-2.7
    compile options: '-I/tmp/tmpTVbfs7/src.linux-x86_64-2.7 -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c'
    x86_64-linux-gnu-gcc: /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fibonacciCompmodule.c
    In file included from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1761:0,
    from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:17,
    from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:4,
    from /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fortranobject.h:13,
    from /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fibonacciCompmodule.c:18:
    /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
    #warning "Using deprecated NumPy API, disable it by " \
    ^
    /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fibonacciCompmodule.c:111:12: warning: ‘f2py_size’ defined but not used [-Wunused-function]
    static int f2py_size(PyArrayObject* var,...)
    ^
    x86_64-linux-gnu-gcc: /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fortranobject.c
    In file included from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarraytypes.h:1761:0,
    from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/ndarrayobject.h:17,
    from /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/arrayobject.h:4,
    from /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fortranobject.h:13,
    from /tmp/tmpTVbfs7/src.linux-x86_64-2.7/fortranobject.c:2:
    /usr/lib/python2.7/dist-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:15:2: warning: #warning "Using deprecated NumPy API, disable it by " "#defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
    #warning "Using deprecated NumPy API, disable it by " \
    ^
    compiling Fortran sources
    Fortran f77 compiler: /usr/bin/gfortran -Wall -ffixed-form -fno-second-underscore -fPIC -O3 -funroll-loops
    Fortran f90 compiler: /usr/bin/gfortran -Wall -fno-second-underscore -fPIC -O3 -funroll-loops
    Fortran fix compiler: /usr/bin/gfortran -Wall -ffixed-form -fno-second-underscore -Wall -fno-second-underscore -fPIC -O3 -funroll-loops
    compile options: '-I/tmp/tmpTVbfs7/src.linux-x86_64-2.7 -I/usr/lib/python2.7/dist-packages/numpy/core/include -I/usr/include/python2.7 -c'
    gfortran:f77: fibonacci.f
    /usr/bin/gfortran -Wall -Wall -shared /tmp/tmpTVbfs7/tmp/tmpTVbfs7/src.linux-x86_64-2.7/fibonacciCompmodule.o /tmp/tmpTVbfs7/tmp/tmpTVbfs7/src.linux-x86_64-2.7/fortranobject.o /tmp/tmpTVbfs7/fibonacci.o -lgfortran -o ./fibonacciComp.so
    Removing build directory /tmp/tmpTVbfs7

    La compilación es exitosa y tenemos un nuevo archivo fibonacciComp.so. Ahora desde la consola de Python el tutorial ya nos debería funcionar:

    Python 2.7.9 (default, Jun 29 2016, 13:08:31)
    [GCC 4.9.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import numpy
    >>> import fibonacciComp
    >>> print fibonacciComp.fib.__doc__
    fib(a,[n])

    Wrapper for ``fib``.

    Parameters
    ----------
    a : input rank-1 array('d') with bounds (n)

    Other Parameters
    ----------------
    n : input int, optional
    Default: len(a)

    >>> a = numpy.zeros(8,'d')
    >>> fibonacciComp.fib(a)
    >>> print a
    [ 0. 1. 1. 2. 3. 5. 8. 13.]

    Recordemos que en nuestro caso el archivo resultante no se llama fib1.so sino fibonacciComp.so y así mismo se importó en el ejemplo de arriba (sin la extensión ".so").

    Para otras distribuciones habría que ajustar la paqueteria necesaria, en otra nota de laboratorio registraremos el proceso para Fedora.

  • Entornos de trabajo para ciencia de datos, instalando R-Studio y Anaconda en Ubuntu Linux 18.04

    bannerDS

    La ciencia de datos o “Data Science” como se le denomina en ingles, es una de las áreas que mayor interés ha despertado en últimos años, siendo descrita por muchos expertos como una de las áreas de mayor relevancia laboral durante la próxima década.

    Pero en sí ¿que es la ciencia de datos?; La ciencia de datos es un área de estudio interdiciplinaria que usa métodos científicos, procesos matemáticos y algoritmos computacionales, con el objetivo de obtener información, conocimiento y representación de comportamientos significativos basados en datos de diferentes fuentes y tipos. Esta ciencia se encuentra muy relacionada con otras áreas igualmente destacadas recientemente, como el Big Data o el Machine Learning. Vinculando a su vez conceptos más tradicionales como lo son las bases de datos (relacionales y no relacionales) y un uso extensivo de métodos y técnicas estadística.

    Por lo anterior y con el objetivo de adentrarnos en el estudio de este interesante tema, a continuación describiremos como instalar dos de los principales entornos de desarrollo para ciencias de datos, sobre nuestro Ubuntu Linux 18,04 LTS Bionic Beaver.

    Para empezar describiremos el proceso de instalación de R Studio un IDE especializado para el lenguaje de programación R, lenguaje especialmente diseñado para el desarrollo de estadística computacional y graficación.

    1 - Instalación de R Studio

    Antes de instalar R Studio necesitaremos instalar en nuestro sistema el paquete r-base que provee el lenguaje de programación R sobre el cual trabajara nuestro IDE.

    Abrimos una terminal o consola “ctr + alt + t” e introducimos los siguientes comandos:

    $ sudo apt update sudo

    $ apt -y install r-base

    R Studio esta disponible para dos de las principales distros de Linux; Fedora y Ubuntu. Para este tutorial instalaremos la versión de R Studio para Ubuntu 16,04+/Debian 9+, la cual podemos descargar del siguiente enlace: https://www.rstudio.com/products/rstudio/download/#download

    R1

     Una vez realizada la descarga volvemos a nuestra terminal o consola e introducimos los siguientes comandos:

    $ cd Descargas
    $ ls
    rstudio-xenial-1.1.456-amd64.deb

    La carpeta descargas puede variar de acuerdo a la configuración o la instalación de su sistema así que podría tener Descargas o Downloads*

    Una vez identificado el paquete procedemos a su instalación:

    $ sudo gdebi rstudio-xenial-1.1.456-amd64.deb

    Y a continuación podremos ejecutar R Studio desde la consola con el siguiente comando:

    $ rstudio

    R2
    O bien desde el menú de aplicaciones:

    R3
    2 – Instalación de Anaconda

    Anaconda es una distribución de Python y R especializada en ciencia de datos “Data Science” y “Machine Learning” orientada al procesamiento de datos a gran escala. Cuenta con su propio administrador de paquete e integra más de 250 librerías y utilidades especializada para el trabajo en ciencia de datos.

    Para comenzar, lo primero que tenemos que hacer es dirigirnos a la pagina de Anaconda y descargar el script de instalación. Podemos hacer esto dando clic en el siguiente enlace: https://www.anaconda.com/download/#linux (esta descarga puede tomar algunos minutos según la velocidad de su conexión)

    An1

    Una vez realizada la descarga volvemos a nuestra terminal o consola e introducimos los siguientes comandos:

    $ cd Descargas
    $ ls
    Anaconda3-5.3.0-Linux-x86_64.sh

    Identificado el paquete, volvemos a la terminal e iniciamos el proceso de instalación por medio del siguiente comando:

    $ sh Anaconda3-5.3.0-Linux-x86_64.sh

    Al ejecutarlo se despegará el siguiente mensaje:

    An2

    Oprimimos la tecla Enter para ver todos los términos de la licencia y finalmente escribimos “yes” para aceptar y continuar con el proceso de instalación.

    Posteriormente nos solicita confirmar la ubicación de los archivos de instalación, para el presente caso usaremos los predeterminados por lo que simplemente oprimiremos la tecla Enter

    An3

    A continuación nos pregunta si deseamos que el instalador inicialice Anaconda3 en nuestro bashrc a lo que en este caso diremos que si, “yes”.

    An4

    Una vez finalizada la instalación de Anaconda, el instalador nos preguntará si deseamos instalar el editor Visual Studio Code, con lo que conforme a sus preferencias ustedes podrán aceptar o seguir adelante y utilizar su editor preferido.

    Finalmente procedemos con la activación de la instalación de anaconda ejecutando el siguiente comando:

    $ source ~/.bashrc

    y la confirmamos con:

    $ conda info

    An5
    Ok, ya esta instalado nuestro Anaconda, pero aun falta el paso final, la cereza del pastel. Y es desplegar nuestro entorno grafico de configuración y trabajo desde el navegador.

    Para hacer esto simplemente ejecutamos el siguiente comando desde nuestra terminal y tendremos todo el poder de Anaconda a nuestra disposición.

    $ anaconda-navigator

    An6


  • IoT con tecnologías de código abierto

    arduino

    OpenSAI de la mano del sistema de investigación, desarrollo tecnológico e innovación del SENA (SENNOVA), en el marco del proyecto de investigación aplicada para el desarrollo de aplicaciones de realidad aumentada basadas en tecnologías de código abierto y encaminadas a brindar soluciones de primera linea al sector logístico, presentó el día de hoy, la transferencia de conocimiento a los grupos de aprendices SENA interesados en la materia.

    Como parte de este proceso, a manera de difusión de la información al publico en general, se ha desarrollado una serie de contenidos didácticos, que brindarán a los interesados en los fundamentos necesarios para adentrarse en el mundo del desarrollo de aplicaciones, que combinen la electrónica y la programación con soluciones de código abierto, una aproximación sencilla e interesante.

    El proceso de creación de contenidos con su correspondiente soporte pedagógico, ha sido realizado en OpenSAI por el Lic. Diego Parra (egresado de la Universidad Distrital), promotor del uso del software libre y tecnologías Open Source.

    Requerimientos y arquitectura de dispositivo (Programación de micro controladores)

    En este vídeo se presenta a modo de perspectiva global la manera como se escogen componentes para desarrollar un proyecto con IoT; de igual forma se brinda una guía para que la personas comiencen a estructurar sus proyectos con tecnologías libres de fácil acceso al publico en general y que sea relativamente sencilla de configurar; también se orienta la forma de modelar la arquitectura que tendrá el proyecto.

     

     

    “Arduino Bitmap #2” by Arduino Labs is licensed under CC BY 2.0

  • Resultados del taller "Scripting básico para Blender 3D"

    IMG 0089

    Muchas gracias a todo los asistentes al taller "Scripting básico para Blender 3D" ..esperamos verlos en nuestros proximos talleres!!

  • Scripting básico para Blender 3D

    Invitamos a todos nuestros seguidores a acompañarnos en el taller "Scripting básico para Blender 3D"

    En este taller se darán a conocer los fundamentos necesarios para la implementación de scripts que permitan la automatización de tareas en el procesos de desarrollo de modelos y animaciones en 3D

    Cuándo
    Sede
    Vivelab Bogotá Av el dorado Carrera 45 No 26- 33
    Inscripciones Aquí
    13086762 1175727905784578 3466698450072673966 o