Steem Red Social que incentiva a Escribir y comentar

Bueno les daré un abre boca, aunque Steem este bajando de precio en este mundillo de las criptomonedas como que nunca se sabe… Y eso es Steem una moneda digamos Financiadas por la Información, si es así están apostando duro y yo le veo bastante Futuro….

En steem ganas por escribir artículos y por comentar, claro otros usuarios deben votar tus artículos, ademas puedes comprar Steem power y así tendrás mayor incidencia en tu votación y en tus artículos y comentarios… pasaba por aquí para dejarles el link a aquellos que les gusta escribir a diario sobre cualquier cosa… Vi algunos tutoriales de Tecnología y programación que como media en un mes se han sacado mas de 100$ y bueno quiza yo pueda hacer uno de odoo o de python pero ahora mismo estoy muy atareado… pienso hacerlo y les contare como me va…

Al final no encontré el link de referidos parece que lo quitaron ya que paga bien por el blog o comentarios, aquí el link: https://steemit.com/

Si te gusta Diseñar y no tienes trabajo, o te gusta la poesía o escribir canciones, historias o simplemente compartir información de lo que sea como a mi, te invito a que no dejes pasar la oportunidad…

Aja, he estado ocupado Migrando QuickBook Desktop y bueno ha sido mucha presion por que estoy rescatando un sistema que no se hizo y lo tuve que migrar en tiempo record, ademas he estado trabajando con Sabre y Kiu, y pronto estare agregando WebPay a Transbank, ademas uno de mis proyectos personales es crear un Modulo en ODOO que se conecte a las API de las Criptomonedas y aplique Machine Learning en un robot que cambie la minería tal como la conocemos :D… bueno ya dije demasiado :D… saludos ya saben por favor voten por mis Comentarios y entradas en steem 😀

Dios les Bendiga

VSFTP en Debian/Ubuntu o Centos ERROR 500 OOPS: vsftpd

500 OOPS: vsftpd: refusing to run with writable root inside chroot() Login failed.

Estaba instalando el Servidor VSFTP y me encontré con este error que rápidamente solucione buscando en la web con estos comandos:


chmod a-w /home/ruta_del_home_del_usuario_FTP

Recuerda cambiar ruta_del_home_del_usuario_FTP por el home que le asignaste en la configuración…

Si no agregaste la linea allow_writeable_chroot=YES debes hacerlo asi


echo 'allow_writeable_chroot=YES' >> /etc/vsftpd/vsftpd.conf

Ahora Reiniciamos el Servidor



systemctl restart vsftpd

 

Hay otro error y es este:  vsftpd 553 Could not create file.

vsftpd 553 Could not create file.

Pero este error es mas sencillo simplemente con chown darle permisos a la carpeta :S, no por que no lo hace automático, sera por que es Centos :S

chown usuario_ftp /home/usuario_ftp

 

Recuerda cambiar usuario_ftp por tu usuario en las 2 partes, esto es todo que Dios les Bendiga… Comentar es gratis 😀

Información sacada de:

www.liquidweb.com

aula128.wordpress.com

También te puede interesar este post:

rootear.com

Un Robot que mueve Archivos en Python + Bash

De verdad que es muy importante aprender mas cada día de nuestro trabajo pero en especial de Dios, recordemos que todo el conocimiento proviene de Dios la Sabiduría es el temor a Jehova o al Señor, y el Discernimiento es conocer Al Señor… por esto yo día a día busco a Dios y dice la palabra todas las cosas se te darán por añadidura, es decir el conocimiento y las fuerzas para hacer cada Día tu trabajo serán añadidos y se te harán mucho mas fácil y podrás hacer cosas que ni pensabas 😀

Les cuento que Tenia que probar en tiempo real que el ODOO v8 leía los documentos PNR de Sabre, en Openerp v7 solo implemente una clase que al ser creada leía los PNRs, luego se me pidió que colocara dicha función que leía los PNR en el planificador de tareas de ODOO v7, y bueno me encontré con algunos detalles que poco  a poco fui sorteando :D, al final todo funciono y tocaba hacer lo mismo en ODOO v8 y así lo hice, pero también debía agregar cada cierto tiempo algunos PNRs para estar seguros que ODOO estaba leyendo los PNRs apenas llegaban y ademas estar seguros que los PNRs una vez leídos eran pasados a otra carpeta para no perder tiempo en leerlos o si quiera contarlos nuevamente, aunque fueran segundos son importantes 😀

Por lo que se me ocurrió la idea de crear un programita que hiciera esa ardua tarea de mover archivos cada cierto tiempo de una carpeta a otra, al final pensé en como hacerlo y quedo así:

# -*- coding: utf-8 -*-
import os

import random

import subprocess

os.system("ls /home/usuario/emular_server_sabre/resspl >/home/usuario/emular_server_sabre/lista_archivos_resspl")

archi=open('/home/usuario/emular_server_sabre/lista_archivos_resspl','r')
    
lineas=archi.read().splitlines()
lista_definitiva = []
for linea in lineas:
      
    lista_definitiva.append(linea)
    

print lista_definitiva
    
archi.close()

while len(lista_definitiva) >= 20:
    numero_aleatorio= random.randrange(20)
    print len(lista_definitiva)
    
    for archivos in range(numero_aleatorio):
      
          numero_aleatorio_sacar= random.randrange(len(lista_definitiva))
          
          archivo_pnr = lista_definitiva[numero_aleatorio_sacar]
          archivo_a_mover = '/home/usuario/emular_server_sabre/resspl/'+ archivo_pnr
          subprocess.call(['mv', archivo_a_mover, '/home/usuario/emular_server_sabre/resspl_new'])
          
          lista_definitiva.pop(numero_aleatorio_sacar)
          
          print archivo_a_mover
          
    os.system("sleep 10")

          

Les comento algunas lineas, importamos os y subprocess, por que es mas cómodo trabajar la shell desde os algunas veces y otras desde subprocess, random para darle un poco de realismo entre comillas :D, lo primero que hacemos es leer la carpeta donde llegaran los PNRs y la pasamos a un archivo, dicho archivo lo leemos linea a linea y lo agregamos 1 a 1 con for a una lista, cerramos el archivo, luego creamos un bucle que mientras queden mas de 20 archivos se ejecute siempre, luego creamos un numero_aleatorio que sera la cantidad de archivos que pasaremos entre 0 y 20, luego creamos en el for un numero aleatorio esta ves para sacar los números de la lista, así vamos moviendo dicho archivo  otro directorio, y hacemos eso para el numero de veces definidas aleatoria-mente, luego esperamos 10 segundos y repetimos el proceso:

Esta podría ser la salida:


Quedan este numero de archivos: 442
/home/setnorac/emular_server_sabre/resspl/TNMLIR00.PNR
/home/setnorac/emular_server_sabre/resspl/CMQSJB00.PNR
/home/setnorac/emular_server_sabre/resspl/BBILYI00.PNR
/home/setnorac/emular_server_sabre/resspl/VKTKVL00.PNR
/home/setnorac/emular_server_sabre/resspl/ASFFGA00.PNR
/home/setnorac/emular_server_sabre/resspl/NZBTGI00.PNR
/home/setnorac/emular_server_sabre/resspl/DEGYFS00.PNR
/home/setnorac/emular_server_sabre/resspl/WFBUUR00.PNR
/home/setnorac/emular_server_sabre/resspl/TEDUYP00.PNR
/home/setnorac/emular_server_sabre/resspl/AQVSGF00.PNR
/home/setnorac/emular_server_sabre/resspl/WNNESL00.PNR
/home/setnorac/emular_server_sabre/resspl/EZTZAX00.PNR
Quedan este numero de archivos: 430
/home/setnorac/emular_server_sabre/resspl/ODGGSK01.PNR
/home/setnorac/emular_server_sabre/resspl/WZUSXY02.PNR
/home/setnorac/emular_server_sabre/resspl/QCCKUP00.PNR
/home/setnorac/emular_server_sabre/resspl/QRYXQJ00.PNR
/home/setnorac/emular_server_sabre/resspl/MLLHVX00.PNR
/home/setnorac/emular_server_sabre/resspl/LKJVCP00.PNR
/home/setnorac/emular_server_sabre/resspl/GNUNXP00.PNR
/home/setnorac/emular_server_sabre/resspl/ZZXVVX00.PNR
/home/setnorac/emular_server_sabre/resspl/ZSTHCV00.PNR
/home/setnorac/emular_server_sabre/resspl/LLIBLM00.PNR
/home/setnorac/emular_server_sabre/resspl/KJNDYN00.PNR
/home/setnorac/emular_server_sabre/resspl/CDAZSI00.PNR
Quedan este numero de archivos: 418
/home/setnorac/emular_server_sabre/resspl/USYRFJ00.PNR
/home/setnorac/emular_server_sabre/resspl/HRZUTH09.PNR
/home/setnorac/emular_server_sabre/resspl/KABKQK00.PNR
/home/setnorac/emular_server_sabre/resspl/WFIIEH00.PNR
/home/setnorac/emular_server_sabre/resspl/RBHQMX00.PNR
/home/setnorac/emular_server_sabre/resspl/ZJVGZF00.PNR
/home/setnorac/emular_server_sabre/resspl/SZKRTH00.PNR
/home/setnorac/emular_server_sabre/resspl/WKEIPW00.PNR
Quedan este numero de archivos: 410
/home/setnorac/emular_server_sabre/resspl/NTJHEC00.PNR
Quedan este numero de archivos: 409
/home/setnorac/emular_server_sabre/resspl/KCMOWH03.PNR
/home/setnorac/emular_server_sabre/resspl/IWMGLY00.PNR
/home/setnorac/emular_server_sabre/resspl/UIVSYI00.PNR
/home/setnorac/emular_server_sabre/resspl/JREMOQ00.PNR
/home/setnorac/emular_server_sabre/resspl/TCPTNN00.PNR
/home/setnorac/emular_server_sabre/resspl/EQZFFS00.PNR
/home/setnorac/emular_server_sabre/resspl/FFFSRL00.PNR
/home/setnorac/emular_server_sabre/resspl/ZAKAMO01.PNR
/home/setnorac/emular_server_sabre/resspl/GWOYGO00.PNR
Quedan este numero de archivos: 400
/home/setnorac/emular_server_sabre/resspl/FTYBXG00.PNR
/home/setnorac/emular_server_sabre/resspl/GGSFVQ00.PNR
/home/setnorac/emular_server_sabre/resspl/YRYHQE00.PNR
/home/setnorac/emular_server_sabre/resspl/GVGEHA00.PNR
/home/setnorac/emular_server_sabre/resspl/EOUVSS00.PNR
/home/setnorac/emular_server_sabre/resspl/VDZGUO00.PNR
/home/setnorac/emular_server_sabre/resspl/ZKVDFB00.PNR
/home/setnorac/emular_server_sabre/resspl/WBEPNT00.PNR
/home/setnorac/emular_server_sabre/resspl/RYPPFK00.PNR
/home/setnorac/emular_server_sabre/resspl/VEWSTU00.PNR
/home/setnorac/emular_server_sabre/resspl/FFWFZB00.PNR
/home/setnorac/emular_server_sabre/resspl/BGDXGH00.PNR
/home/setnorac/emular_server_sabre/resspl/UZEDKC00.PNR
Quedan este numero de archivos: 387
Quedan este numero de archivos: 387
/home/setnorac/emular_server_sabre/resspl/EIGPDE00.PNR
/home/setnorac/emular_server_sabre/resspl/OJWCOC00.PNR
/home/setnorac/emular_server_sabre/resspl/DDCMEX00.PNR
/home/setnorac/emular_server_sabre/resspl/DKTGPP00.PNR
/home/setnorac/emular_server_sabre/resspl/AEJHFG00.PNR
/home/setnorac/emular_server_sabre/resspl/TGHKIK00.PNR
/home/setnorac/emular_server_sabre/resspl/DRKFSS00.PNR
Quedan este numero de archivos: 380
/home/setnorac/emular_server_sabre/resspl/KELLQI00.PNR
/home/setnorac/emular_server_sabre/resspl/OGGFZL00.PNR
/home/setnorac/emular_server_sabre/resspl/YUVINL00.PNR
/home/setnorac/emular_server_sabre/resspl/TAPXAA00.PNR
/home/setnorac/emular_server_sabre/resspl/EEMYZM00.PNR
/home/setnorac/emular_server_sabre/resspl/EBJWPM00.PNR
/home/setnorac/emular_server_sabre/resspl/STJHUE00.PNR
/home/setnorac/emular_server_sabre/resspl/EMSWIR00.PNR
/home/setnorac/emular_server_sabre/resspl/KPPWGH00.PNR
/home/setnorac/emular_server_sabre/resspl/FMFAYL00.PNR
/home/setnorac/emular_server_sabre/resspl/OJGBZT00.PNR
/home/setnorac/emular_server_sabre/resspl/DQKLJH00.PNR
/home/setnorac/emular_server_sabre/resspl/EHUKQF00.PNR
/home/setnorac/emular_server_sabre/resspl/CFGMKG00.PNR
/home/setnorac/emular_server_sabre/resspl/VXKOPK00.PNR
/home/setnorac/emular_server_sabre/resspl/YZHXZQ00.PNR
/home/setnorac/emular_server_sabre/resspl/QYOLSD00.PNR
/home/setnorac/emular_server_sabre/resspl/MSTWAM00.PNR
Quedan este numero de archivos: 362
/home/setnorac/emular_server_sabre/resspl/BJEIWS00.PNR
/home/setnorac/emular_server_sabre/resspl/RPXTNN00.PNR
/home/setnorac/emular_server_sabre/resspl/ETWBCA00.PNR
/home/setnorac/emular_server_sabre/resspl/UBUIYY00.PNR
/home/setnorac/emular_server_sabre/resspl/NEMIQT00.PNR

Y bueno en realidad no hace mucho pero nos puede dar muchas ideas de uso 😀

Ya subi el video a Youtube mañana lo subo al blog 😀

Feliz Día que Dios les Bendiga y les Llene de Gozo….

Planificación de Tareas desde Openerp v7 (ODOO) ir_cron

Me disculpan que no he subido el vídeo de PNRs Sabre con ODOO, pero es que he estado bastante ocupado con el Trabajo que estoy haciendo para la AeroLinea esta(aunque no directamente, soy freelancer)…

Hoy les vengo a contar que después que cree, el modulo que lee los PNRs que imprime el software SABRE, para la segunda Fase tengo que hacer que todo sea automático, es decir que con el modulo ir_cron de ODOO se ejecute la lectura de los PNRs y se vacié en las clases correspondientes, lo segundo ya estaba hecho lo primero no, me pareció muy sencillo pero tiene su truco, como todo en ODOO 😀

Al principio pensé que correría directamente en el planificador colocando los datos del objeto y el método a llamar, pero me equivoque y me daba este error(ojo corte el error pero básicamente eso dice):

openerp.addons.base.ir.ir_cron: Call of  create TypeError: create() takes at least 4 arguments (3 given)

Y ahora que hago el Botón si esta funcionando pero el planificador no quería leer mi código :S… Buscando en internet y leyendo ayudas con respecto a este tema me encontré con varias y son de las que vamos a hablar aquí, creo que si llegaste aquí es por que tienes algún error de los que vamos a hablar… por eso no colocare el código completo 😀

  • El error me dice estas pasando 4 argumentos mientras que la llamada a create del planificador necesita 3.
def run_actions(self, cr, uid, ids, context=None):

Así mas o menos tenemos nuestra función definida, les cuento que no hay nada de malo para un botón, pero si lo que queremos es pasársela al planificador solo debemos eliminar “ids” de los argumentos que estamos pasando y ya funcionara 😀

def run_actions(self, cr, uid, context=None):

Por otra parte si quieres saber exactamente como hacer una función para ser llamada por el planificador aquí te dejo este enlace

Ademas si quieras ir un poco mas allá no dejes de leer esto

En un rato o mañana voy a subir un código en python que esta muy interesante, que tuve que hacer para simular la llegada de archivos PNRs a el servidor que las procesa, para cambiarlas de Directorio(carpetas) donde llegan a un directorio de Procesados, no es mucho pero es interesante las formas que tenemos de embeber código Shelscript en Python

Voy a ir subiendo los vídeos a ver si algún día suben :S

 

 

Sabre + ODOO pasando datos de Archivos PNR a ODOO

Luego de Hablarle a el cliente me dio permisos de subir un vídeo de como funciona el ODOO en conjunto con SABRE…

odoo_sabre

SABRE es un sistema operativo de procesamiento en tiempo real (RT TPOS) centralizado, desarrollado por American Airlines e IBM. segun

Este sistema es usado por las AeroLineas para administrar todo lo que tiene que ver con La Venta de Pasajes, y bueno ya que este es un sistema cerrado muchas AeroLineas han migrado a ODOO no es la primera vez que escucho de ODOO y AeroLineas, por hay me contacto alguien para este mismo tema hace varios meses y me dejo como novia de pueblo jajaja, sin rencores…. Aprovecho para decir que estoy a la Orden para cualquier Reto en los siguientes temas:

  • Migracion y adaptacion de Bases de Datos  a ODOO, siempre que la Base de datos este en sistemas legibles por ejemplo que se puedan pasar a CSV de alguna manera…
  • Scraping desde Python a cualquier Pagina, adecuación de los datos a Bases de Datos y Creacion de APIs a partir de los datos recolectados, tampoco soy mago
  • Scraping desde ODOO, bueno eso 😀

Siguiendo con el tema, esto lo hice en una semana, aunque los 3 primeros días fueron una tortura por que no sabia que era un archivo PNR, luego fui leyendo la documentación que casi no existía, en realidad tuve que leer el código de otros, tenían una API que al final nunca supe por que no funcionaba , eran muchos códigos, scripts y mucha configuración… al final recree las condiciones de la API en ODOO directamente(en la próxima entrada un par de vídeos)

Aunque bajo mucha presión lo logre y Sabre ahora esta conectado a ODOO de alguna manera… los Archivos PNR son correctamente leídos desde ODOO y pasan toda su información.

Las limitaciones con ODOO son casi imperceptibles, ahora mismo hay muchas formas de hacer las cosas y si queremos programar algo es cuestión de tiempo y cuanto están dispuesto a invertir por software único o para adaptar a sus necesidades…

El fuerte de este programa en realidad es como leer los archivos PNR, pero a mi me gusto mucho por que aquí si que tuve que colocar toda la carne en el asador, al sacarle el máximo provecho a Python, al usar Diccionarios, Listas, Tuplas, Tuplas de Listas, Diccionarios de Diccionarios, Listas de Diccionarios, Tuplas de listas con Diccionarios, agregar información a estas  estructuras cada ves que se hacían mas complejas era un poco raro al principio pero luego uno se acostumbra…

Hasta aquí esta entrada en la próxima los 2 Vídeos del Sistema corriendo y extrayendo los PNR… Dios les Bendiga y les de Discernimiento…

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...

 

 

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

ODOO herencia de Modulos stock.pickin.out (Stock picking out )

ESto va a ser breve y simple solo para recordar y ayudar a quienes necesiten esto que en internet no esta tan explicito, agregar un campo por herencia a stock.pickin.out es igual que a partner ;D

ojo no voy a hablar de crear  modulos desde 0 a mnos que de verdad necesiten que lo haga, solo vamos a hablar del archivo .py y el archivo .xml, simple el py es donde vamos a crear toda la logica de programacion, las clases funciones y campos, y el archivo .xml es el archivo donde vamos a codificar como queremos que se vean los campos en el navegador 😀

el primer archivo quedaria asi


from openerp.osv import fields, osv

class stock_picking_out_mi(osv.osv):
    """
Modified stock
    """
    _inherit = "stock.picking.out"


    _columns = {
        

         'responsable': fields.many2one('res.partner','Responsable'),
         'despachado_por': fields.many2one('res.partner','Despachador'),
         

    }
    _defaults ={

    }

stock_picking_out_mi()



Solo me interesa agregar por quien fue despachado y quien es el responsable de la mercancía, ojo que los campos me los traigo de la clase res.partner solo por que ya esta instanciada…

	

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
<!-- Adding the fields from stock_move to the screen -->
    <record model="ir.ui.view" id="mi_modulo_stock_picking_out_mi_form">
        <field name="name">mi_modulo.stock.picking.out.form</field>
            <field name="model">stock.picking.out</field>
            <field name="type">form</field>
            <field name="inherit_id" ref="stock.view_picking_form"/>
            <field name="arch" type="xml">
                <field name='origin' position='before'>

 
                    <field name="despachado_por"/>
                    <field name="responsable"/>

                </field>
            </field>
        </record>
	
	
    </data>
</openerp>

Aqui podria colocar los campos donde se desee, pero lo colocamos despues de origin, le podemos crear un page entre otras mejoras, ojo con los nombre y sobre todo con la referencias, la linea que contiene lo siguiente es lo mas importante:


<field name="inherit_id" ref="stock.view_picking_form"/>

Instalar Netis WF-2402d en Debian o Ubuntu

Instalar Driver para Dispositivos WF-2402d, WF-2404d, WF2414, WF2411d en DEBIAN 7 “WHEEZY”

Hace poco me toco instalar el sistema Openerp v7 en un negocio y no tenían conexión directa al router  desde el servidor y solo tenían un conector wifi de la marca Netis por lo que me toco investigar como instarla revise el lsusb y me fije que habia un realtek network pero pense que era de la maquina, pero al no encontrar nada procedi a hacer lsusb con tail luego de conectar el dispositivo y aun salia este realtek bueno para mi sorpresa netis usa realtek y aquí paso a decir como lo instale con exito en mi sistema DEBIAN 7 “WHEEZY” Remasterizado aunque nada del otro mundo…..

Instalar en Debian 7 “Wheezy”

Esta versión es compatible con Realtek RTL8188CE, RTL8188CUS, RTL8188DE, RTL8188SU, RTL8191SE, RTL8191SU, RTL8192CE, RTL8192CU, RTL8192DE, RTL8192E, RTL8192SE, RTL8192SU and RTL8192U-based devices.

  1. Agregamos los repositorios al sistema, agregamos los “non-free” a /etc/apt/sources.list, por ejemplo:

     #nano /etc/apt/sources.list
    

    Escribimos:

    # Debian 7 "Wheezy" 
    deb http://httpredir.debian.org/debian/ wheezy main contrib non-free
    
  2. actualizamos la lista de paquetes para instalar el paquete firmware-realtek :

    # apt-get update && apt-get install firmware-realtek
    

     

    RTL8192U-based  es necesario agregarlo de manera manual asi: 

    # apt-get install unzip && exit
    $ wget ftp://ftp2.dlink.com/PRODUCTS/DWA-130/REVC/DWA-130_REVC_DRIVERS_0.06_LINUX.ZIP
    $ unzip DWA-130_REVC_DRIVERS_0.06_LINUX.ZIP
    $ su
    # mkdir /lib/firmware/RTL8192U
    # cp rtl8192u_linux_2.6.0006.1031.2008/firmware/RTL8192U/* /lib/firmware/RTL8192U
    

     

  3. Conecta el dispositivo al sistema deberias tenerlo en el administrado de redes ya configurado, en caso de no ser asi aqui tienes la opción de instalarlo:

https://wiki.debian.org/WiFi/HowToUse

 

informacion sacada de:

https://wiki.debian.org/rtl819x