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 -
Corriendo código Fortran sobre Python (Debian) { Notas de Laboratorio }
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 foundTiene 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 -fPICcreating /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/tmpTVbfs7La 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
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-baseR 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
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
O bien desde el menú de aplicaciones:
2 – Instalación de AnacondaAnaconda 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)
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:
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
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”.
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
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
-
IoT con tecnologías de código abierto
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"
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í