Latest entries

Elixir, una capa de abstracción sobre SQLAlchemy

written by uve

1 November 2010

Elixir es un proyecto que trata de reemplazar la extensión declarative de SQLAlchemy, y la verdad es que merece la pena tenerlo en consideración. Voy a poner un ejemplo de como utilizar Elixir, siguiendo la línea de los dos artículos anteriores.

Full entry >>

Jugando con SQLAlchemy II

written by uve

1 November 2010

Lo que acabo de explicar nos permite trabajar directamente sobre SQLAlchemy, cono todo lo que ello conlleva. Pero tenemos otra posibilidad, trabajar como un ORM puramente. Para ello, SQLAlchemy ofrece una extensión, en el paquete ext.

Full entry >>

Jugando con SQLAlchemy

written by uve

1 November 2010

Hace ya tiempo que escuché hablar de SQLAlchemy. Para quién no lo conozca, es un toolkit para SQL y posee un ORM. SQLAlchemy es una capa abstracción para la construcción y manipulación de expresiones SQL, pero nos permite mapear de una forma sencilla a objetos Python y funcionar como un ORM.

Full entry >>

Ejecutar código C en Matlab: parte 3

written by uve

27 October 2010

Continuando un poquito con el tema, voy a hacer un pequeño aporte aunque no muy significativo. Voy a explicar un par de problemas que me he ido encontrando estos días.

Full entry >>

Acceder a ficheros del aula de prácticas desde casa

written by uve

24 October 2010

Un pequeño post para refrescar a algunos como podemos acceder a ficheros que estén en los ordenadores del aula de prácticas desde casa. Es muy habitual que en algunas prácticas nos obliguen a trabajar con estos ordenadores y luego se nos olvide copiarnos el trabajo realizado.

Aquí vamos a recuperarlo todo desde casa, aunque bajo ciertas limitaciones. Para empezar debemos tener configurada la VPN y estar conectados.

Full entry >>

Embeber código Python dentro de C

written by uve

21 October 2010

Hoy toca un poquito acerca de Python, pero desde un punto distinto. Voy a explicar brevemente como podemos ejecutar código Python dentro de nuestra aplicación escrita en C.

Para ello, Python nos provee una biblioteca y un API que nos permite acceder e interactuar con objetos Python.

Full entry >>

Breves: Cómo no ejecutar un programa con OpenMPI

written by uve

20 October 2010

Básicamente esto es un autorecordatorio de como no se debe ejecutar un programa a través de MPI:

$ mpirun mi_programa -np 5

¿Qué significa esto? Que MPI debe de lanzar el ejecutable "mi_programa", el cual tiene como parámetros "-np 5". Cuando realmente hay que escribir:

$ mpirun -np 5 mi_programa

Así sí decimos a MPI que utilice 5 procesos :)

Es muy importante recordar esto:

mpirun [opciones MPI] ejecutable [opciones del ejecutable]

Full entry >>

Ejecutar código C en Matlab: parte 2

written by uve

13 October 2010

Ahora que ya hemos visto cómo hacer un Hola Mundo! vamos a ver como podemos controlar los parámetros de entrada y salida. De esta forma podremos interactuar con los tipos de datos propios de Matlab.

Full entry >>

Ejecutar código C en Matlab: parte 1

written by uve

8 October 2010

Al final el Contrato de Investigación ha empezado esta semana y llevo unos días trabajando con Matlab, pero la parte fuerte de cómputo la voy a realizar en C. Así que hasta Diciembre vendré escribiendo una serie de artículos acerca de Matlab y Matlab junto con C.

Ahora mismo tengo hechos algunos progresos que trataré de postear a lo largo del fin de semana y la semana que viene. Por motivos de trabajo no puedo comentar nada acerca de lo que estoy desarrollando, pero escribiré una serie de artículos genéricos acerca de mis problemillas.

Full entry >>

Conectar con la cviugr desde terminal

written by uve

6 October 2010

En el post anterior comentaba como autenticar con la cviugr desde terminal, aunque primero es necesario conectarse. Para quien no sepa como conectarse, aquí un mini tutorial básico.

Full entry >>

Autenticación en cviugr desde terminal

written by uve

6 October 2010

Para quién no la conozca, la cviugr es una red inalámbrica que ofrece la Universidad de Granada a sus alumnos, que únicamente permite el acceso al puerto 80. La primera vez que accedemos a una página web, nos redirecciona a una página de login. Inidcamos nuestro correo de la UGR y nuestra contraseña, y a partir de aquí podemos navegar con normalidad. Pero, ¿y si no tenemos entorno gráfico?

Full entry >>

Herencia múltiple en Python

written by uve

2 October 2010

Siguiendo un poquito con la herencia, Python nos permite realizar herencia múltiple. Es importante tener en cuenta que el método super invoca únicamente a la primera clase base. Supongamos las siguientes clases base:

class BaseA(object):
    def __init__(self, a):
        self.a = a
        print 'BaseA:', a

class BaseB(object):
    def __init__(self, b):
        self.b = b
        print 'BaseB:', b

Full entry >>

Herencia en Python

written by uve

2 October 2010

Voy a explicar muy brevemente como podemos hacer herencia en Python, aunque realmente es la cosa más tonta que hay en el mundo. Lo primero es crear una clase base:

class Coche(object):
    def __init__(self, marca):
        self.marca = marca
        print "Coche:", marca

Full entry >>

Breves: Como saber si un objeto Python es una cadena

written by uve

30 September 2010

if isinstance(obj, basestring):
   ... # Es instancia str o una instancia unicode

Full entry >>

Cómo configurar Grub2

written by uve

24 September 2010

Llevaba un tiempo sin la necesidad de trastear con Grub. De hecho, la última vez que me peleé con Grub fue con la versión anterior. Hoy ha tocado "actualizarme" para aprender a configurar Grub2.

Full entry >>

La teoría es cuando crees saber algo, pero no funciona.
La práctica es cuando algo funciona, pero no sabes por qué.
Los programadores combinan la teoría y la práctica:
Nada funciona y no saben por qué.