Error al ejecutar pip install -r requirements.txt

#include “libxml/xmlversion.h”

^

compilation terminated.

error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1

—————————————-
Can’t roll back lxml; was not uninstalled
Cleaning up…
Command /usr/bin/python -c “import setuptools, tokenize;__file__=’/tmp/pip-build-GJ8XUc/lxml/setup.py’;exec(compile(getattr(tokenize, ‘open’, open)(__file__).read().replace(‘\r\n’, ‘\n’), __file__, ‘exec’))” install –record /tmp/pip-nbzGg4-record/install-record.txt –single-version-externally-managed –compile failed with error code 1 in /tmp/pip-build-GJ8XUc/lxml
Storing debug log for failure in /root/.pip/pip.log

Este es el Error que me salta en la pantalla, y es que cada vez que instalo el sistema en diferentes Gnu/linux me sale el mismo error y no me voy a extender mucho esta es la solucion:


apt-get install libxml2-dev libxslt1-dev python-dev

Saludos y comentar no cuenta nada, estamos para servir

Al final sale esto:


Cleaning up...

 

 

Anuncios

Experiencia de La Especialización Python para toda la vida

Quiero compartir mi experiencia en este curso Especialización en Python por que creo que me ha cambiado la vida, así como Dios nos cambia si aceptamos nuestros errores, al principio pensé en hacer el curso por el certificado y para afianzar mis conocimientos en programación y en python, YA estoy a solo 3 tareas de completar el curso 4 y de verdad me siento con muchas ganas de aprender , hasta me ha dado por leer el libro Mining-the-Social-Web-2nd-Edition.pdf el libro esta en ingles y creo que la mejor manera de aprender algo es hacerlo(quiero aprender mas ingles), como cuando aprendimos a andar en Bicicletas es necesario montar la bicicleta….

En resumen, comencé el curso para respaldar lo que sabia y si que había leído muchos libros y había hecho todos los Libros y revistas que pude encontrar en la red, y ya tengo aproximadamente 8 años leyendo libros de programación pase por C, C++, Ruby, Perl y al final me decidí por Python no sin antes leer y hacer todos los ejercicios que planteaban los libros , leí aproximadamente 5 o mas libros de cada lenguaje antes de python, pase de ser un Administrador Novel de sistemas linux a un defensor de las Generosidades del Software libre pasando por ser un programador fuerte en BASH(Haciendo cosas que nunca creí hacer en una terminal), fui Administrador de Linux(Dicte clases) ya no me considero tan novel, pase de hablar de seguridad a usar todo tipo de herramientas forenses y jugar un poco con ellas.

Hice muchos script en BASH pero nunca tuve la oportunidad de tener por ejemplo SNORT corriendo en un ambiente de Producción es decir Real, pero Bash ya no era suficiente es por eso que deje a un lado Bash y me enfoque desde hace 3 años a programar en Python con la idea de crear un juego en pygame cree algunas cosas tontas pero necesitaba siempre a un diseñador, por lo que me sumergí en un proyecto con ODOO en ese entonces OPENERP deje a un lado mis libros de Administración de sistemas en Linux y BASH y me enfoque en PYTHON y La programación en ODOO.

Eso si que fue un reto mis conocimientos de programación orientada a objetos eran solo lecturas, pero  ningún cimiento, fui empujando el carro, cree algunos proyectos en ODOO para hacerlos y aprender mas, la mayoría los logre y hay como 4 o 5 aun en papel :S….

Este año ha sido muy Difícil, acepte de verdad a Cristo en mi Vida, no sabia que hacer con tantos proyectos, y decidí vivir 1 día a la vez, con la actualidad venezolana esto es muy muy difícil, hace un mes renuncie a uno de mis empleos, los acuerdos se rompieron debido a la terrible presión que ejerce la inflación sobre todos, ahora mismo el trabajo es muy poco, hemos decidido hacer trabajos que podemos hacer fácil y rápido para evitar el estrés de la crisis económica y para no cometer los mismos errores de años pasados.

Hemos mejorado mucho en lo que nos ha tocado aprender(Hasta aquí podría decir he vivido 50 años, pero tengo 30 y solo he vivido en El software unos 6 años de verdad).

Cuando hice el primer curso de Python para toda la vida, comencé a sentir que de verdad estaba en mi elemento y aprendí 10 veces mas de lo que esperaba y si que siempre tengo expectativas altas soy un soñador, pero me gusta ver el fruto de mis afanes en todas las zonas de mi vida, lamentablemente no siempre las cosas salen como queremos.

Cuando hice el 2do curso termine casi todos mis pequeños proyectos pero ya no los quise hacer públicos por que al ser Cristiano ya no me parecían buenos a los ojos de Dios, así que los deje en una gaveta virtualmente en un github(solo por que hay funciones que algún día puede que necesite)

En este mes termine el 3er curso en 15 días, en febrero termine el 2do, y ya en 1 sola semana estoy terminando el 4to y si que ha sido exigente este  ultimo y me ha hecho pensar mucho en cada ejercicio, y como el trabajo a bajado y por que queremos que sea así en la empresa hemos quedado trabajando con proyectos pequeños y como freelancer(esta es la mejor alternativa debido a la crisis de mi país), me he dedicado a lo que realmente me gusta programar y saciar mi necesidad de aprender junto con mi curiosidad.

Es que el Curso 4 trata sobre como jugar con la información de la red, la que esta en Las paginas sueltas, organizaciones y mas, es lo que Llamamos SCRAPING en programación, al principio solo era tomar datos de un HTML y pasarlo a python contar palabras usar frecuencias y otras cosas tontas o muy sencillas.

Pero la cosa se puso buena cuando entramos con XML y no me dio chance de parpadear cuando entramos con JSON, que son sistemas para hacer sencillo el flujo de información en la red entre la pagina y un programa o app, de verdad que me entusiasme mucho con esto Json que es la mas usada, pero de verdad me dejo impactado la manera tan sencilla de usar las API de las paginas mas Grandes o especializadas en un área, específicamente las paginas de las redes sociales, estas Api las podemos usar para acceder a mucha de la información que ellas tienen.

En los ejemplos del curso usamos la Api Twitter y guardamos los datos en una Base de Datos(aprendimos a usar SQLITE3) hicimos consultas múltiples y demás y es por eso que estoy escribiendo esta entrada para comenzar con una nueva Serie “Jugando con las API” si se que tengo unas un poco olvidadas pero a medida que vayan pidiéndolas las retomare….

De verdad que no me gusta simplemente copiar y pegar de un libro aunque este en Ingles y mucho menos de otro blog a menos que tenga algo que agregar y como el libro no implementa bases de datos yo a medida que vayamos pasando los capítulos de la serie voy a ir agregando Bases de datos a los ejemplos del libro 😀

De verdad que es un reto y es lo que me gusta… recomiendo 100%  el Curso, por favor si quieres mejorar como programador te recomiendo hacerlo, sin mas nada que decir y para no alargar la entrada me despido y estamos para ayudar 😀 Feliz Dia

Farmsatoshi, Simulador en Python, Subir Almacenes

 

 

hackermuerto

Bueno Hoy les traigo lo prometido cuantos satoshis necesito para subir mis almacenes, no me voy a alargar mucho aqui les dejo el codigo del sistemita, y cualquier cosa que no me haya explicado solo pregunten como siempre a la orden

 

 
#!/usr/bin/python
# -*- coding: utf-8 -*-

###Programa que itera hasta llegar a la capacidad de almacen que deseemos y nos dice cuantos SATOSHIS nos costara

capacidad_almacen_actual = float(raw_input("Cual es su Max. para este almacen: "))

siguiente_update = float(raw_input("escriba a cuanto sube MAX su proximo almacen: "))

capacidad_almacen_update = float(raw_input("Hasta donde lo piensa llevar Max. para este almacen: "))

siguiente = ( siguiente_update / capacidad_almacen_actual * 1.0000) - 1 # calculo del % que cuesta subir el almacen

costo_subir_almacen= float(raw_input("escriba el costo en SATOSHIS de subir 1 almacen ahora: "))

costo_subir_almacen= float(costo_subir_almacen)/(siguiente + 1)

costo_siguiente = costo_sigue = 0

n_cliclos = costo_subir_almacen_total = 0

for i in range(1,5000) :
  
    capacidad_almacen_actual = capacidad_almacen_actual 
    costo_subir_almacen = costo_subir_almacen
    
    if capacidad_almacen_actual <= capacidad_almacen_update:
  
    
        n_cliclos += 1

        capacidad_almacen_actual += ( siguiente * capacidad_almacen_actual )
        
        costo_subir_almacen += siguiente * costo_subir_almacen
        
        costo_subir_almacen_total += costo_subir_almacen

        print "La subida para el Ciclo", n_cliclos," tiene un Costo de", costo_subir_almacen ,"para un almacen de", capacidad_almacen_actual

    else:
          costo_subir_almacen = costo_subir_almacen
          capacidad_almacen_actual = capacidad_almacen_actual 



print "El Costo", costo_subir_almacen_total ,"SATOSHIS, para llegar a el max.", capacidad_almacen_actual,"Almacen, en",n_cliclos ,"Ciclos"

 

Aqui tienen la salida y las conclusiones, lo siento no hice nada para evitar o atrapar los errores asi que si meten otra cosa que no sea un numero no funciona….

 
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Salida del Programa para nuestro almacen de trigo
"""

Cual es su Max. para este almacen: 82
escriba a cuanto sube MAX su proximo almacen: 88
Hasta donde lo piensa llevar Max. para este almacen: 840
escriba el costo en SATOSHIS de subir 1 almacen ahora: 815
La subida para el Ciclo 1 tiene un Costo de 815.0 para un almacen de 88.0
La subida para el Ciclo 2 tiene un Costo de 874.634146341 para un almacen de 94.4390243902
La subida para el Ciclo 3 tiene un Costo de 938.631766805 para un almacen de 101.349196907
La subida para el Ciclo 4 tiene un Costo de 1007.31213999 para un almacen de 108.764991802
La subida para el Ciclo 5 tiene un Costo de 1081.01790633 para un almacen de 116.723405837
La subida para el Ciclo 6 tiene un Costo de 1160.11677752 para un almacen de 125.264142849
La subida para el Ciclo 7 tiene un Costo de 1245.003371 para un almacen de 134.429811838
La subida para el Ciclo 8 tiene un Costo de 1336.10117863 para un almacen de 144.266139533
La subida para el Ciclo 9 tiene un Costo de 1433.86467951 para un almacen de 154.822198524
La subida para el Ciclo 10 tiene un Costo de 1538.78160728 para un almacen de 166.150652074
La subida para el Ciclo 11 tiene un Costo de 1651.37538342 para un almacen de 178.30801686
La subida para el Ciclo 12 tiene un Costo de 1772.20772855 para un almacen de 191.354944923
La subida para el Ciclo 13 tiene un Costo de 1901.88146478 para un almacen de 205.356526259
La subida para el Ciclo 14 tiene un Costo de 2041.04352318 para un almacen de 220.382613546
La subida para el Ciclo 15 tiene un Costo de 2190.38817122 para un almacen de 236.508170635
La subida para el Ciclo 16 tiene un Costo de 2350.66047643 para un almacen de 253.813646535
La subida para el Ciclo 17 tiene un Costo de 2522.66002349 para un almacen de 272.385376769
La subida para el Ciclo 18 tiene un Costo de 2707.24490325 para un almacen de 292.316014094
La subida para el Ciclo 19 tiene un Costo de 2905.33599374 para un almacen de 313.704990735
La subida para el Ciclo 20 tiene un Costo de 3117.92155425 para un almacen de 336.659014447
La subida para el Ciclo 21 tiene un Costo de 3346.06215578 para un almacen de 361.29260087
La subida para el Ciclo 22 tiene un Costo de 3590.89597206 para un almacen de 387.728644836
La subida para el Ciclo 23 tiene un Costo de 3853.64445782 para un almacen de 416.099033482
La subida para el Ciclo 24 tiene un Costo de 4135.61844254 para un almacen de 446.545304225
La subida para el Ciclo 25 tiene un Costo de 4438.22467004 para un almacen de 479.219350876
La subida para el Ciclo 26 tiene un Costo de 4762.97281663 para un almacen de 514.284181428
La subida para el Ciclo 27 tiene un Costo de 5111.48302273 para un almacen de 551.914731288
La subida para el Ciclo 28 tiene un Costo de 5485.49397561 para un almacen de 592.298736017
La subida para el Ciclo 29 tiene un Costo de 5886.87158358 para un almacen de 635.63766792
La subida para el Ciclo 30 tiene un Costo de 6317.61828482 para un almacen de 682.147741183
La subida para el Ciclo 31 tiene un Costo de 6779.88303736 para un almacen de 732.060990538
La subida para el Ciclo 32 tiene un Costo de 7275.9720401 para un almacen de 785.62642887
La subida para el Ciclo 33 tiene un Costo de 7808.36023815 para un almacen de 843.111289519

##
El Costo 103384.283493 SATOSHIS, para llegar a el max. 843.111289519 Almacen, en 33 Ciclos
"""

# Salida del Programa para nuestro almacen de Zanahoria

"""

Cual es su Max. para este almacen: 53
escriba a cuanto sube MAX su proximo almacen: 59
Hasta donde lo piensa llevar Max. para este almacen: 270
escriba el costo en SATOSHIS de subir 1 almacen ahora: 569
La subida para el Ciclo 1 tiene un Costo de 569.0 para un almacen de 59.0
La subida para el Ciclo 2 tiene un Costo de 633.41509434 para un almacen de 65.679245283
La subida para el Ciclo 3 tiene un Costo de 705.12246351 para un almacen de 73.1146315415
La subida para el Ciclo 4 tiene un Costo de 784.947648058 para un almacen de 81.3917596405
La subida para el Ciclo 5 tiene un Costo de 873.809645952 para un almacen de 90.6059211092
La subida para el Ciclo 6 tiene un Costo de 972.731492663 para un almacen de 100.863195197
La subida para el Ciclo 7 tiene un Costo de 1082.852039 para un almacen de 112.281670125
La subida para el Ciclo 8 tiene un Costo de 1205.43906229 para un almacen de 124.992802592
La subida para el Ciclo 9 tiene un Costo de 1341.90386179 para un almacen de 139.142931187
La subida para el Ciclo 10 tiene un Costo de 1493.81750652 para un almacen de 154.894961133
La subida para el Ciclo 11 tiene un Costo de 1662.92892235 para un almacen de 172.430239752
La subida para el Ciclo 12 tiene un Costo de 1851.18502677 para un almacen de 191.950644252
La subida para el Ciclo 13 tiene un Costo de 2060.75314301 para un almacen de 213.680905866
La subida para el Ciclo 14 tiene un Costo de 2294.04595165 para un almacen de 237.871197096
La subida para el Ciclo 15 tiene un Costo de 2553.74926693 para un almacen de 264.800011861
La subida para el Ciclo 16 tiene un Costo de 2842.85295753 para un almacen de 294.777371695
##
El Costo 22928.5540824 SATOSHIS, para llegar a el max. 294.777371695 Almacen, en 16 Ciclos
"""
# Salida del Programa para nuestro almacen de Heno

"""
Cual es su Max. para este almacen: 310
escriba a cuanto sube MAX su proximo almacen: 353
Hasta donde lo piensa llevar Max. para este almacen: 1776
escriba el costo en SATOSHIS de subir 1 almacen ahora: 2653
La subida para el Ciclo 1 tiene un Costo de 2653.0 para un almacen de 353.0
La subida para el Ciclo 2 tiene un Costo de 3020.99677419 para un almacen de 401.964516129
La subida para el Ciclo 3 tiene un Costo de 3440.03826223 para un almacen de 457.720884495
La subida para el Ciclo 4 tiene un Costo de 3917.20485989 para un almacen de 521.211200732
La subida para el Ciclo 5 tiene un Costo de 4460.55908239 para un almacen de 593.508238253
La subida para el Ciclo 6 tiene un Costo de 5079.28179382 para un almacen de 675.833574526
La subida para el Ciclo 7 tiene un Costo de 5783.82733296 para un almacen de 769.578231638
La subida para el Ciclo 8 tiene un Costo de 6586.10015657 para un almacen de 876.326179898
La subida para el Ciclo 9 tiene un Costo de 7499.65598474 para un almacen de 997.881101625
La subida para el Ciclo 10 tiene un Costo de 8539.93084714 para un almacen de 1136.29686733
La subida para el Ciclo 11 tiene un Costo de 9724.50190012 para un almacen de 1293.91223926
La subida para el Ciclo 12 tiene un Costo de 11073.3844218 para un almacen de 1473.39038857
La subida para el Ciclo 13 tiene un Costo de 12609.3700028 para un almacen de 1677.76389408
La subida para el Ciclo 14 tiene un Costo de 14358.4116484 para un almacen de 1910.48598262
##
El Costo 98746.263067 SATOSHIS, para llegar a el max. 1910.48598262 Almacen, en 14 Ciclos

"""

# Salida del Programa para nuestro almacen de Heno

"""
Cual es su Max. para este almacen: 112
escriba a cuanto sube MAX su proximo almacen: 132
Hasta donde lo piensa llevar Max. para este almacen: 2318
escriba el costo en SATOSHIS de subir 1 almacen ahora: 1354
La subida para el Ciclo 1 tiene un Costo de 1354.0 para un almacen de 132.0
La subida para el Ciclo 2 tiene un Costo de 1595.78571429 para un almacen de 155.571428571
La subida para el Ciclo 3 tiene un Costo de 1880.74744898 para un almacen de 183.352040816
La subida para el Ciclo 4 tiene un Costo de 2216.59520773 para un almacen de 216.093476676
La subida para el Ciclo 5 tiene un Costo de 2612.41578053 para un almacen de 254.681597511
La subida para el Ciclo 6 tiene un Costo de 3078.91859849 para un almacen de 300.16045421
La subida para el Ciclo 7 tiene un Costo de 3628.72549107 para un almacen de 353.760535319
La subida para el Ciclo 8 tiene un Costo de 4276.71218591 para un almacen de 416.932059483
La subida para el Ciclo 9 tiene un Costo de 5040.41079053 para un almacen de 491.384212962
La subida para el Ciclo 10 tiene un Costo de 5940.48414599 para un almacen de 579.131393848
La subida para el Ciclo 11 tiene un Costo de 7001.28488634 para un almacen de 682.547714178
La subida para el Ciclo 12 tiene un Costo de 8251.51433033 para un almacen de 804.431234567
La subida para el Ciclo 13 tiene un Costo de 9724.99903218 para un almacen de 948.079669311
La subida para el Ciclo 14 tiene un Costo de 11461.6060022 para un almacen de 1117.37961026
La subida para el Ciclo 15 tiene un Costo de 13508.3213597 para un almacen de 1316.91168352
La subida para el Ciclo 16 tiene un Costo de 15920.5216026 para un almacen de 1552.07448415
La subida para el Ciclo 17 tiene un Costo de 18763.4718887 para un almacen de 1829.23064203
La subida para el Ciclo 18 tiene un Costo de 22114.0918689 para un almacen de 2155.87897097
La subida para el Ciclo 19 tiene un Costo de 26063.0368454 para un almacen de 2540.85735864

##
El Costo 164433.64318 SATOSHIS, para llegar a el max. 2540.85735864 Almacen, en 19 Ciclos

"""

Luego nos queda

103384.283493 + 22928.5540824 + 98746.263067 + 164433.64318 = 389492.7438224
Necesitamos 389492.7438224 SATOSHIS
A una tasa de 10.000 SATOSHIS al Dia
Tardaríamos 39 dias para lograr solo los almacenes necesarios para estar tranquilos 24 horas
Es decir no tenemos que conectarnos en 24 horas y no perderemos nada
Bueno parece que quede largo, pero si nos damos cuenta tendríamos que estar cada 2 horas pendiente para sacar 10.000 SATOSHIS al día
Conclusión sigan dando clic en las BTX o jueguen marketglory o alguna de las siguientes paginas que iré aprobando, ya tengo varias pero para colocarlas en SCAM o estafa 😀
Hasta luego ya desarrolle el diseño de la optimizacion segu lo que tenemos ahora mismo falta plasmarla y que funcione… luego la subo aunque quizá para finales de mes
Voy a comenzar con Marketglory

Se me olvidaba voy a comenzar con Optimizacion Lineal en python y es que me enamore de las gratificas jeje

SyntaxError: JSON.parse: unexpected OPENERP 7….. SOLVED WKHTMLTOPDF corrupto!!!

SyntaxError: JSON.parse: unexpected end of data at line 2 column 1 of the JSON data

Este bendito error que ya me he encontrado varias veces y varias veces he resuelto, solo que esta vez me encontré con uno de mis colegas y su nueva instalación de openerp7 en su ubuntu y bueno no daba con el problema yo mismo había corrido un par de informes en esa maquina y el problema es un apt-get install wkhtmltopdf en el ubuntu y parece que este archivo de los repos de ubuntu no funciona con openerp por lo que nos toca instalar a mano 😀

 

aqui dejo los pasos muy sencillos!

0- para mayor comodidad creen un directorio he ingresen

# mkdir /opt/wkhtmltopdf

# cd /opt/wkhtmltopdf

1 Descargamos el archivo, si seque hay una versión mas reciente pero este es el que siempre he instalado!

# wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2

2 descomprimimos el archivo descargado

bunzip2 wkhtmltopdf-0.11.0_rc1-static-i386.tar.bz2

# tar -xvf wkhtmltopdf-0.11.0_rc1-static-i386.tar

 

3 movemos el archivo a los binarios del sistema :D, en caso de haber instalado el paquete nativo lo sobrescribimos

mv wkhtmltopdf-i386 /usr/bin/wkhtmltopdf

 

y listo todo funcionando :D… espero sea de ayuda…. y como a la gente de odoo le gusta borrar sus cosas de los blogs voy a ver si añado una wiki o algo parecido al blog

 

Muchas veces me siento a escribir una entrada y al final decido no hacerla ya que  aveces pienso en hacer del blog mas técnico(cuando estoy trabajando a full) y otras pienso en hacer el blog mas jovial a la final no me decidí y seguiré escribiendo como quiera 😀

 

Onchange en Openerp “Paso a Paso”!!!

Siempre que hago algo y  no lo documento tengo que pasar horas buscando en la red y aunque normalmente encuentro algo mejor o lo que estaba buscándome molesta usar 1 hora mas o menos buscando algo que ya había buscado y solucionado es por esta razón que cree el blog y la segunda para compartir mis problemas y soluciones a temas técnicos principalmente lo que me gusta y en lo que trabajo!

En esta ocasión traigo una entrada dedicada a onchange esta valiosa herramienta  o código, que hará ver nuestras vistas mas profesionales y hará que nuestro cliente sepa que hemos trabajado duro para cumplir con nuestro trabajo y con sus expectativas ademas dejamos el Software Libre muy en alto al hacer esto 😀 (Trabajar como si fuera para Dios, como no somos perfectos ni de cerca :S , por lo menos podemos intentar hacer el trabajo de esta manera :D)

Onchange, no encontré un definición si la tienen bienvenida!! Mas o menos es simplemente hacer que al cambiar el valor de un campo a mano este se represente en otro con cambios o sin ellos….

Por ejemplo si ingresamos el nombre de un cliente y quisiéramos saber su crédito sin ingresar a la vista form de este o  verlo desde la vista tree o para hacer la búsqueda creo que el onchange nos salvara la vida :D, ya que no tienes que guardar para ver cambios ni nada parecido…. se hacen en el momento que sales del campo 😀

Bueno como nada es exageradamente fácil aun en openerp o python, primero tenemos que crear un método que nos llamara al método onchange dentro de nuestra clase y luego agregar el método a la vista form en el archivo XML

Uno de las soluciones de StackOverflow fue la que me ayudo y es esta:

def onchange_bbb(self, cr, uid, ids, bbb, context=None):
 vals = {'aaa': bbb}
 return {'value': vals}

Este pequeño código es la parte lógica del programa onchange que intentamos hacer, nos debemos fijar primero en que bbb se encuentra dentro de los argumentos y en vals(valores) el primer valor es el que va a cambiar y el segundo es el que vamos a meter a mano

Así nos quedaría la vista Form del XML

field name="aaa"/>
<field name="bbb" on_change="onchange_bbb(bbb)"/>
<field name="ccc"/>
<field name="ddd"/>

y nos debemos fijar que bbb es quien cambia aaa y por esto el onchange lo lleva este campo y no el otro :D…. esta es la parte fácil en Internet encontrar esto y hacer un cambio de un campo normal a uno dentro de many2one, pero de many2one a uno fuera de este la situación es diferente y no encontré nada en Internet por lo menos no me funcionaron :S…. tenia un código por ay de otro modulo que buscaba un average y use la forma de búsqueda self.pool.get y browse y agregue esa linea al código y ya hace lo que les cuento 😀

def onchange_method(self, cr, uid, ids, campo1111, context=None):
name=self.pool.get('res.partner').browse(cr, uid,campo1111, context=context)
vals = {'campo2222' : name.campo1111}
return {'value': vals}

Si nos fijamos he cambiado todo, o no, no la respuesta esta en que bbb contiene  varios campos y entre ellos a campo1111 y por lo tanto al agregar este campo veremos el cambio en la vista que nos interesa sobre el campo2222…

field name="aaa"/>
<field name="bbb" on_change="onchange_method(bbb)"/>
<field name="campo2222"/>
<field name="ddd"/>

Espero les alla gustado y mas importante lo hayan implementado con éxito… a la brevedad escribiré como agregar el interesante botón imprimir Reporte con su método para nuestros módulos y hablare un poco de la criptografia y los SSL

 

 

 

 

Sin espacio en el Disco!!! No queda espacio en el Dispositivo !!!

El dispositivo no tiene espacio

No queda espacio en el Dispositivo

Que hacemos ahora, esto me había ocurrido varias veces y por mas que borremos no somos una maquina para saber donde esta el espacio o quien lo esta usando, y me dije es que en guindous existe  ccleaner en linux/debian no existe nada parecido, y me dije a mi mismo imposible si existe algo en guindows en GNU nuestra gran comunidad debianista debe haber creado 4 o 6 herramientas muy parecidas y mejores!!!

Por lo que simplemente escribi en google como liberar espacio en linux y luego de lo comun y  lo que todo administrador de sistema sabe por ejemplo: apt-get clean, rm /tmp/* -R, entre otros como $ cd  / & rm *.*  -R…… es una broma….. luego de seguir algunos tutoriales  que no daban con el problema me di cuenta de esta fabulosa herramienta:  BAOBABCaptura de pantalla de 2015-02-13 19:55:44

De verdad no esperaba menos de Debian y es que esta herramienta es casi nativa en todos los debian o por lo menos podemos instalarla con # apt-get install baobab,  Y este programa nos permite hacer un anlisis de todo el disco y nos muestra con un grafico  sencillo pero  a la vez muy explicativo  con cada color y ademas que programas están haciendo uso de los archivos, por ejemplo  yo tenia un problema del tipo “No queda espacio en el Dispositivo” y no daba con el problema pero como estaba usando Xen sabia que el problema eran imágenes creadas que no recordaba donde estaban almacenadas por lo que BAOBAB me saco del apuro y me dijo exactamente cuanto espacio estaba ocupando cada directorio en el sistema desde la raiz por lo que el mismo baobab me permite enviar a la papelera de root cualquier directorio para luego ser borrada desde la consola 😀 o borrar directamente no recomendable…

BAOBAB

Árbol tropical de tronco muy ancho (hasta 10 m de diámetro), de madera esponjosa, corteza gruesa y grisácea, copa poco densa, ramas escasas y separadas, hojas palmeadas de tres a siete folíolos que caen en verano, flores grandes y blanquecinas y frutos oblongos y leñosos de gran tamaño; puede alcanzar 12 m de altura.

Mas lectura http://www.elfrutodelbaobab.com/Elbaobab.htm

La Funcion Dir de Python!!!

La función dir( ) es una de las funciones de mayor uso por desarrolladores en python. Esta función devuelve una lista ordenada alfabéticamente de los métodos y propiedades de algún objeto. Veamoslo con algunos ejemplos sencillos 😀

# Modulo de los numeros de fibonacci
def fib(n):
# Escribe la serie de Fibonacci hasta n
   a, b = 0, 1
   while b < n:
      print b,
      a, b = b, a+b
def fib2(n): # Regresa la serie de fibonacci hasta n
   result = []
   a, b = 0, 1
   while b < n:
      result.append(b)
      a, b = b, a+b
   return result

Recordemos el código de Fibonacci pasado, estando en el directorio donde guardamos dicho código ejecutamos el código ya sea desde la consola o con su editor favorito:

$ python
>> import fibo, sys

Así lo que hacemos es simplemente importar la función fibo y sys del sistema, ahora seguimos en la siguiente linea y escribimos:

>> dir(fibo)
#Resultado
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'fib', 'fib2']

Por ejemplo si ejecutamos ademas:

>> fibo.__builtins__ 

O también:

>> fibo.__file__

obtendremos algunas cosas que nos podrían servir de algo en algún momento :D, por ejemplo file nos dice donde esta el archivo 😀

Si por ejemplo se nos ocurre escribir dir() sin argumento nos devuelve:

>> dir()

Pero esto no es todo ademas si hacemos dir(sys) nos espera una larga cadena prueben y verán, ahora vamos a ver otras cositas de dir:

Si por ejemplo creamos una lista en blanco

li = []
dir(li)

Devuelve una lista de los métodos de una lista. Advierta que la lista devuelta contiene los nombres de los métodos en forma de cadenas, no los propios métodos. Y si llenamos la lista:

lista=[2,4,6]
dir(lista)

Ahora podríamos pensar en algunas otras cosas como:

>>  dic1 = {}
>>  dir(dic1)
>>  dic1={'juan':44,'ana':3}
>>  dir(dic1)
>>  import random
>>  dir(random)

Recuerda que el simbolo ” $ ” se refiere al promp como usuario y el símbolo ”  >> ” se refiere al promp de python, espero que te sea de alguna ayuda material sacado del Libro “”Desarrollo de aplicaciones con Python Pygtk y Glade””  y de las siguientes paginas, mas que python es Ocio lo que me movió a hacer la entrada 😀

http://es.diveintopython.net/apihelper_builtin.html

http://pythonya.appspot.com/detalleconcepto?deta=Funciones%20de%20uso%20com%C3%BAn%20(range%20-%20type%20-%20str%20-%20dir)

Para la siguiente entrada tendremos velocidad en Python 😀

Funciones y Modulos en Python!!!

En esta oportunidad les voy a hablar sobre la instanciacion de las funciones en python, por ejemplo recuerdo que teniamos el siguiente codigo:


n = int(input( "Introduce el valor de N: "))
m = int(input( "Introduce el valor de M: "))
if (n or m) < 1:
     print "Solo Numero positivos mayores que 0"
else:
     for n in range(n,m):
          while n != 1:
               print n,
               if n%2 == 0:
                    n = n/2
               else:
                    n = n*3+1
          print n

Y bueno esto no es mas que un script, por lo que si queremos reutilizar el código debemos crear una función por lo que nos quedaría de la siguiente manera:


def numnum(n,m):
   if (n or m) < 1:
      print "Solo Numero positivos mayores que 0"
   else:
      for n in range(n,m):
         while n != 1:
            print n,
               if n%2 == 0:
                  n = n/2
               else:
                  n = n*3+1
         print n
numnum(20, 25) # Aqui llamamos a la funcion que creamos

Donde n y m son números que podemos cambiar, si lanzamos el código sin la ultima linea no haría nada y saltaría la linea simplemente por lo que al escribir en el promp la ultima linea veríamos el resultado esperado 😀

En realidad el código es muy sencillo de entender ahora vemos un ejemplo del libro “Desarrollo de aplicaciones con Python Pygtk y Glade” Se los recomiendo “Es una tesis”….

# Modulo de los numeros de fibonacci
def fib(n):
# Escribe la serie de Fibonacci hasta n
   a, b = 0, 1
   while b < n:
      print b,
      a, b = b, a+b
def fib2(n): # Regresa la serie de fibonacci hasta n
   result = []
   a, b = 0, 1
   while b < n:
      result.append(b)
      a, b = b, a+b
   return result

Las 2 funciones mas o menos hacen lo mismo, la única diferencia es que append se refiere a un arreglo recuerden la calculadora de hace tiempo que hicimos por lo que agrega(b) al vector cada ves hasta terminar, ejecuten el código y luego hagan lo siguiente, yo uso Wing IDE por que cuando comencé en http://programarcadegames.com/ ese era el IDE que usaban:

Asi que simplemente corro el script y luego voy al promp de este IDE y escribo lo siguiente:


import fibo

esto para importar el modulo bien podríamos importar solo una de las 2 funciones con el nombre que se nos ocurra en otro script o modulo que hagamos a futuro


fibo.fib(1000)

# Resultado
# 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987


fibo.fib2(1000)

# Resultado
# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]


fibo.fib2(1000)

# Resultado
# [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987]

Ahora un extra para cuando veamos la siguiente entrada:


fibo.__name__
# Resultado
# 'fibo'

Para ampliar mas esto podrían leer el libro antes mencionado en la pag75 “Desarrollo de aplicaciones con Python Pygtk y Glade”

 

 

 

Python! Cosas raras

Me encuentro testeando  algunos ejercicios de python de libros y me encontré con esto :S


for c in [0b1001000, 0b1000101, 0b1001100, 0b1101100, 0b1101111, 0b0100000, 0b1010111, 0b1101111, 0b1110010, 0b1101100, 0b1100100, 0b0100001, 0b0001010]:

print chr(c)

 

Que interesante y apetecible resulta aprender cosas nuevas, el programa simplemente convierte los binarios a ASCII, también encontré esto que solo me sirvió para ver si estaba en lo correcto por que no le encontré otro uso jeje

Y bueno luego revise que hacia el codigo si escribia:

0b0001000 cambie el primer 1 por 0 y me salio este caracter raro Testeenlo

Para mi es como un shift o ctrl H mayuscula algo de verdad que no comprendo, luego segui indagando y cambien el siguiente 1 a 0 y vi que las siguientes letras a excepcion de la W no tenian este 1 si no un cero por lo que entendi que si tenian el 1 pertenecian a las mayusculas, cosa que me parecio muy simple el cambiar de minuscula a mayusculas, tan simple como colocar el texto que imprime el programa en una sola linea hay les dejo esa :D,,,,,

MultiSytem y Minino (Distribución exageradamente minimalista Wheezy)

Nosotros a los que nos gusta la Libertad y aprender todos los días algo, a los que nos gustan las nuevas tecnologías, las distribuciones de linux de ultima generación y totalmente funcionales así como el software que las componen siempre estamos en un constante movimiento y buscando la manera de resolver problemas en los diferentes sistemas y sus diferentes escenarios, por lo que, por mucho que deseemos estar al día con las diferentes tecnologías no podemos y siempre se nos pasan por alto algunos software de alta calidad…

En esta ocasión Gracias a Dios y al compañero Richard por mostrarnos ,en una de esas conversaciones de la causalidad de la vida, Estas 2 excelentes herramientas y es que ya el Unetbooting no me era suficiente y ya había oído hablar del MultiSystem pero muchas veces nos acostumbramos y nos apegamos a herramientas y no queremos  cambiarlas sin darnos cuenta y nos olvidamos de la satisfacción que  da aprender y entrar en una constante aventura….

También nos hablo de una de las Distribuciones mas ligeras y minimalistas que existe(No se si sea la mas ligera) en Wheezy actualmente(hoy nos olvidamos del código) se trata de una distribución hecha por unos Españoles(Gallegos) esta distribución corre en maquinas con muy pocos recursos lo recomendado son apenas 256 de RAM cuando Lubuntu pedía mínimo 512….

Ademas crearon Picaros una distribución para niños Ludica con muchos juegos(Tendré que probarlas y les cuento), lo mejor es que puedo probar las 2 o 3 distribuciones que aparecen en el enlace en el mismo pendrive de 8 Gigas y dejarlas allí de ser necesario… I Estas herramientas no pueden faltar en tu ordenador…. Espero te sean de Gran Provecho

Aquí les dejo el enlace de DEscarga

http://minino.galpon.org/es/descargas

Aqui como instalar MultiSystem

http://blog.desdelinux.net/haz-de-tu-usb-una-navaja-suiza-con-multisystem/