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

sábado, 21 de mayo de 2011

Python extraer año de datetime.date


datetime.date.today().isocalendar()[0]

Python, más aritmética con meses


def suma_mes(current_date, month_step):
""" suma month_setp mesos a current_date """
carry, new_month=divmod(current_date.month-1+month_step, 12)
new_month+=1
return current_date.replace(year=current_date.year+carry, month=new_month)


¿Cuántos días faltan para el mismo día de hoy del mes que viene?


>>> print (suma_mes(datetime.date.today(), 1)-datetime.date.today()).days

Sumar un mes con python


>>> from datetime import date
>>> current_date=date.today()
>>> carry, new_month=divmod(current_date.month-1+1, 12)
>>> new_month+=1
>>> current_date=current_date.replace(year=current_date.year+carry, month=new_month)
>>> print date.today()
2011-05-21
>>> print current_date
2011-06-21
>>>