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.

  • 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