jueves, 23 de junio de 2011

Ejecutar scripts mysql a lo Unix

Una forma es

mysql -u root -p -h localhost nombre_bd < script.sql

y otra

cat script.sql | mysql -u root -p -h localhost

lunes, 20 de junio de 2011

Cuidado con el directorio de instalación de django

El directorio de instalación, tal y como indica el manual , lo obtenemos con

from distutils.sysconfig import get_python_lib;print get_python_lib()

y muestra

/usr/lib/python2.6/dist-packages

Peeero, en realidad en ubuntu se instala en

/usr/local/lib/python2.6/dist-packages
o
/usr/lib/pymodules/python2.6/django

¿Cómo podemos saber la localización de este directorio?. Pues usando la librería sys, que mantiene la localización del __init__.py de cada import:

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys, os, django
>>> sys.modules['django']
module 'django' from '/usr/local/lib/python2.6/dist-packages/django/__init__.pyc'

Sacado de esta entrada de stackoverflow http://stackoverflow.com/questions/2647862/how-can-i-tell-what-directory-an-imported-library-comes-from-in-python

domingo, 19 de junio de 2011

Opciones para programación con vi / vim

Esta es la config que uso en ~/.vimrc para editar python


syntax on
set number
set expandtab
set tabstop=4
set shiftwidth=4
set nowrap
set foldmethod=marker
set smartindent
set mouse=a
set foldmethod=indent
set foldlevel=99
autocmd BufRead *.py set makeprg=python\ -c\ \"import\ py_compile,sys;\ sys. stderr=sys.stdout;\ py_compile.compile(r'%')\"

autocmd BufRead *.py set efm=%C\ %.%#,%A\ \ File\ \"%f\"\\,\ line\ %l%.%#,%Z %[%^\ ]%\\@=%m

autocmd BufRead *.py nmap :!python %

map ^T :Texplore <CR>


Para sacar el control+T hacemos ctrl+v y luego ctrl+t.

Con esta configuración:
:make para ver errores de sintaxis.
za hace fold/unflod dentro de un método
:retab cambia todos los tabs por espacios o al contrario, según config actual

Window splits
Para dividir la pantalla y no tener que estar arriba y abajo con el mismo fichero:
Vertical Split : Ctrl+w + v
Horizontal Split: Ctrl+w + s
Close current windows: Ctrl+w + q

Unos cuantos links
Un montón de trucos.
El wiki de los trucos.
El clásico Turning Vim into a modern Python IDE.
Artículo Beginner's guide to Vi Improved

sábado, 4 de junio de 2011

Cambiar tamaño de disco en qemu kvm

Una posible forma es la siguiente, suponemos que el disco inicial es inicial.qcow2:

1.- crear disco de destino del tamaño deseado p.e. 60G
qemu-img create -f qcow2 destino.qcow2 60G

2.- arrancamos gparted con un sistema con los dos discos
qemu -hda inicial.qcow2 -hdb destino.qcow2 -cdrom=gparted.iso -boot d

3.- con el gparted hacemos copiar/pegar de un disco a otro con el nuevo tamaño deseado
(tarda bastante si los discos son grandes)

4.- comprobamos que boota y nuevo tamaño de disco
qemu -had destino.qcow2
hacemos df -h para comprobar nuevo tamaño

Si el nuevo dominio no arranca podemos usar la distribuición rescatux y regrabar el grub en la MBR (gràcies Victor ;-))

qemu -hda destino.qcow2 -cdron=rescatux.iso -boot d

Pasar de VirtualBox a KVM o Xen

Para pasar un disco de vdkm o vdi a qcow2 pasamos primero por raw. Es decir:

convertim vmdk de virtual box a raw:
VBoxManage internalcommands converttoraw aaa.vmdk file.raw

comprbar que boota
qemu -had file.raw

Convertimos raw a qcow2
qemu-img convert file.raw -O qcow2 imatge.qcow2

comprobar que boota
qemu -had imatge.qcow2

Cómo virtualizar con ubuntu kvm y no morir en el intento

Ni se os ocurra seguir la server guide porque no solo no funciona sino que confunde. El manual apropiado es el "community"

Community KVM installation