Servicio de nube gratuito para php/python/perl/java/…

La nube está muy de moda. Ya os hablé de gondor. Hoy toca un servicio de nube con buena pinta: dotCloud

https://www.dotcloud.com/

Soporta un montón de servicios y otros están en camino:

http://docs.dotcloud.com/services/roadmap/

Y de BBDD lo mismo, tenemos las clásicas mysql, postgresql, mongodb, etc

Hay un plan gratuito donde solo podemos tener 2 servicios. Luego ya empezamos con los planes de pago. Hay que tener en cuenta que un servicio es la base de datos y otro la aplicación.

https://www.dotcloud.com/pricing/

Los precios empiezan desde 99$/mes, que no es poco! Pero también dicen que hay descuentos y ofertas para proyectos FLOSS y educativos.

pygtk: como pedir confirmación al usuario

A veces en una aplicación PyGT necesitamos pedir al usuario que nos confirme una acción, con esta pequeña función tendremos la solución. Se le pasa como parámetros el texto a monstrar y el título de la ventana.

def pedir_confirmacion(texto,titulo):
    dialog = gtk.MessageDialog(None, gtk.DIALOG_MODAL,gtk.MESSAGE_INFO, gtk.BUTTONS_YES_NO,texto)
    dialog.set_title(titulo)
    response = dialog.run()
    dialog.destroy()
    if response == gtk.RESPONSE_YES:
        print "A respondido que sí!"
        return True
    else:
        print "A respondido que no!"
        return False

Vía ubuntu forums

Notas sobre programación de aplicaciones de escritorio en python: teoría y práctica

Alguna vez he programado alguna cosa en pygtk por divertimento. Una vez tuve que adaptar el instalador de Ubuntu (ubiquity) para un proyecto del trabajo y me tocó pelearme otra vez con python+gtk. Ahora quería mirar una manera sería de hacer desarrollos de aplicaciones de escritorios en python GTK, así que lo primero es recopilar información y este ha sido e resultado:

Continue reading

Control del flujo tipo switch en python

Ieup,

Otra pildorita de Python. Siempre echaba de menos una orden de control del flujo del tipo switch de PHP. Hasta ahora siempre hacía un sucio hack con if-s anidados (si asi de WTF es uno :P). Pero hoy, cansado ya y con necesidad urgente he rebuscado en san google y he encontrado que se puede hacer tan sencillo como mapeandola funciones a valores en un array. Sacado del blog de Simon Willson :

#Definimos las funciones
def alerta(texto):
        print "ALERTA: %s"%texto
def farsa(texto):
        print "FARSA: %s"%texto
#Definimos el array mapeador
case = {
    'a': alerta,
    'f': farsa
    }
variable='a'
print variable
case[variable]("lala")
print "Ahora cambiamos"
variable='f'
print variable
case[variable]("lele")

pelearse con parametros en scripts python

Si alguna vez tenemos que recoger y tratar parámetros pasados por linea de comando a un script de python la siguiente docu nos vendrá de perlas:

http://www.ibiblio.org/g2swap/byteofpython/read/sys-module.htm

para los vagos que no quieren ni hacer click:

#!/usr/bin/python
# Filename: cat.py

import sys

def readfile(filename):
	'''Print a file to the standard output.'''
	f = file(filename)
	while True:
		line = f.readline()
		if len(line) == 0:
			break
		print line, # notice comma
	f.close()

# Script starts from here
if len(sys.argv) < 2:
	print 'No action specified.'
	sys.exit()

if sys.argv[1].startswith('--'):
	option = sys.argv[1][2:]
	# fetch sys.argv[1] but without the first two characters
	if option == 'version':
		print 'Version 1.2'
	elif option == 'help':
		print '''\
This program prints files to the standard output.
Any number of files can be specified.
Options include:
  --version : Prints the version number
  --help    : Display this help'''
	else:
		print 'Unknown option.'
	sys.exit()
else:
	for filename in sys.argv[1:]:
		readfile(filename)