Latest entries
Elixir, una capa de abstracción sobre SQLAlchemy
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.
Jugando con SQLAlchemy II
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.
Jugando con SQLAlchemy
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.
Ejecutar código C en Matlab: parte 3
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.
Acceder a ficheros del aula de prácticas desde casa
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.
Embeber código Python dentro de C
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.
Breves: Cómo no ejecutar un programa con OpenMPI
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]
Ejecutar código C en Matlab: parte 2
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.
Ejecutar código C en Matlab: parte 1
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.
Conectar con la cviugr desde terminal
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.
Autenticación en cviugr desde terminal
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?
Herencia múltiple en Python
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
Herencia en Python
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
Breves: Como saber si un objeto Python es una cadena
30 September 2010
if isinstance(obj, basestring):
... # Es instancia str o una instancia unicode
Cómo configurar Grub2
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.
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é.
