Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - $francisco

#1
Que tal a tod@s, hace ya bastante tiempo que no publico nada, y quisiera publicar una librería bastante interesante para desarrollar aplicaciones multiplataforma
con python, tanto para windows, linux, android e ios, la librería esta bastante bien aunque todavía queda algunas cosas para mejorar como la compilación a apk
por ejemplo, pero aun así creo que merece la pena echarle un ojo y usarla.

                                          


La librería se llama KivyMD
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Y tiene una documentación que está bastante bien y bien documentada
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

KivyMD es una librería que adapta los widget para que se visualicen correctamente en los sistemas operativos Android e Ios por ejemplo
en caso de Android siguiendo el material design de google para que parezca una aplicación android nativa.
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

La librería en la que se basa es como bien indica su nombre indica es kivy
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

También con una buena documentación
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta


Espero que les guste esta información, es mi pequeño regalo de navidad si así se puede llamar.

Un saludo y ¡¡¡Feliz navidad!!!
#2
Perdonar que comente un un post antiguo, quería preguntarles si saben si existe algún SDK para poder añadir widget nuevos para creo personalizados.

Gracias
#3
Muy buenas a todos, hace ya bastante no comparto nada, pero creo que esto realmente merece la pena.

¿Que es Kivy?

kivy es una librería de python sdl2 que fue desarrollado en C para la creación de videojuegos en 2D.

Los desarrolladores de Kivy hicieron un gran trabajo e hicieron un framework en sdl2 para crear aplicaciones multiplataforma, lo interesante no es sólo esto si no que puede ejecutarse en dispositivos móviles y tabletas tanto para android como para ios.

Kivy esta mas orientado para aplicaciones tipo touch, como dispositivos móviles o pantallas táctiles, por este motivo a vuelto a revivir la librería KivyMD,.

KivyMD se basa en Kivy, lo que han creador es un conjunto de Widgets basados en material design para que las aplicaciones tengan mejor aspecto al ejecutarse sobre todo en dispositivos móviles.

Dicho todo esto quiero compartir unos videos  recientes subidos a KivyMD español para ver si esto coge fuerza y podemos dar un vuelco a crear apps para dispositivos móviles con python.

#4
Muy buenas compañeros, quiero compartir algo a lo que le estoy dedicando un poquito de tiempo y que a los pythoneros seguro les va a gustar.

Vamos a usar kivy, en mas concreto kivymd que es una extensión o librería de kivy, decir que kivy esta creado con sdl2, sdl2 es un conjunto de bibliotecas creadas en C por un desarrollador de videojuegos y que proporciona funciones básicas para crear operaciones de dibujo en 2d.

Ahora con kivymd (kivy material desing) proporciona un estilo que sigue el estándar de diseño que se puso en el sdk 21 o api 5 de esta manera parece que es una aplicacion android real, no solo eso, también tenemos pyjnius que nos proporciona acceder a java desde python y de esta manera podemos acceder al sdk nativo usando pyjnius, también tenemos buildozer que es una herramienta que nos ayuda a compilar a apk o a ios.

Creamos nuestro archivo No tienes permitido ver los links. Registrarse o Entrar a mi cuenta que sera el punto de entrada de nuestra aplicación.

Código: python
from kivy.app import App
from kivymd.theming import ThemeManager


class Main(App):
    theme_cls = ThemeManager()

    def open_menu(self, widget):
        self.root.toggle_nav_drawer()

    def imprimir(self, texto):
        print(texto)

Main().run()


Este es el punto de entrada y theme_cls es lo que va a buscar cuando se genera la instancia, es lo que proporciona kivymd y es donde se comienza a crear la magia.

Ahora vamos a crear el main.kv

Código: text
NavigationLayout:
    MDNavigationDrawer:
        drawer_logo: "menu.png"
        NavigationDrawerIconButton:
            icon: "home"
            text: "Inicio"
            on_release: screen_manager.current = "screen1"

        NavigationDrawerIconButton:
            icon: "lock"
            text: "Pagina 2"
            on_release: screen_manager.current = "screen2"

    BoxLayout:
        orientation: "vertical"
        MDToolbar:
            title: "App"
            md_bg_color: app.theme_cls.primary_color
            left_action_items: [["menu", app.open_menu]]
        ScreenManager:
            id: screen_manager
            Screen:
                name: "screen1"
                FloatLayout:
                    MDLabel:
                        text: "Screen 1"
                        size_hint: (0.5, 0.1)
                        pos_hint: {"center_x": 0.5, "center_y": 0.9}
                        halign: "center"

                    MDRoundFlatButton:
                        text: "Imprimir"
                        pos_hint: {"center_x": 0.5, "center_y": 0.8}
                        on_release: app.imprimir("Screen 1")

            Screen:
                name: "screen2"
                FloatLayout:
                    MDLabel:
                        text: "Screen 2"
                        size_hint: (0.5, 0.1)
                        pos_hint: {"center_x": 0.5, "center_y": 0.9}
                        halign: "center"

                    MDRoundFlatButton:
                        text: "Imprimir"
                        pos_hint: {"center_x": 0.5, "center_y": 0.8}
                        on_release: app.imprimir("Screen 2")


El archivo main.kv es el archivo que carga por defecto al crear la instancia de nuestra aplicación, si ejecutamos esto veremos nuestra aplicación funcionando.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta





#5
que tal a todos, tengo 2 usbs nuevos PNY 64g y en los dos me sale lo mismo, sistema de archivos desconocido, ya he estado viendo que podría estar en formato raw pero no es el caso lo he mirado en el administrador de discos de windows y me sale vacio, como si fuera un lector de cd, con linux ni si quiera lo reconoce, gparter no lo reconoce como almacenamiento usb, con lsusb me sale pero no es reconocido, si intento formatearlo desde windows en formatear me salta un error diciendo que no hay ningun disco en la unidad y el espacio disponible es de 0MB lo unico que puedo deducir es que directamente no venga bien de fabrica pero me parece extraño 2 de 2.

Gracias
#6
Muy buenas a todos, tengo unas dudas sobre como usar correctamente los token, comento un poco lo que estoy haciendo.

Tengo una url para autentificacion auth0 ejemplo /login/ donde se reciven ya sea por el header o parametros post el usuario y la contraseña, si este es correcto se genera un token de aceso y otro de refresco donde para refrescar tengo /refresh/ para actualizar el de acceso, en el token de acceso se guarda un id que es guardado en redis con un usuario y contraseña por ejemplo
Código: python
db.__setItem__(key,value) 

donde un caso real es
Código: python
db.__setItem__(id,{'username':'fran','password':'mi pass'})

entonces creo una url /protect/ donde uso JWT para que no pueda ser accedida sin tener un token de acceso valido, si es valido el token se descodifica y obtiene el id, con este id se mira en redis para obtener el usuario y contraseña y no tener que volver a pedir las credenciales solamente en la autentificacion pero tengo una duda
¿si alguien obtiene mi token de acceso puede acceder a la url protegida? de ser asi ¿como puedo evitarlo?
#7
Para poder ayudarte muestra tu codigo
#8
Dudas y pedidos generales / Ayuda con odoo
Marzo 16, 2018, 06:28:24 PM
Muy buenas a todos, estoy empezando con odoo, ya lo he instalado y probado la api odoo-rest, lo que veo es que me cuesta mucho aprender su funcionamiento y como poder crear un modulo realmente bueno debido a que poca gente programa en este framework, con esto quiero decir si algunos de los que estáis por aquí habéis usado odoo para poder empezar a usarlo, ya he empezado pero ya he tenido mi primer atasco, he creado un modulo y un nuevo usuario, el administrador puede ver el modulo creado pero el usuario creado no puede ver el modulo, con esto quiero decir que la vista creada no se visualiza en el menú desde este usuario y muchas mas dudas que no logro aclarar
#9
Gracias me sirvio, pero ¿porque se obliga a usar contents y no funciona con el texto directamente?

hay otra cosa que no logre hacer esta que me acorde de que esta parent() pero no logro entender muy bien esto mi código quedo así
Código: javascript
$(document).ready(function(){
    $('.getter').on('click',function(){
        var html = $(this).html();
        var content = $(html).contents();
        $(content).each(function(index){
            if(index > 0 && index != 7){
                var id = $(this).parent().attr('id');
                var value = $(this).text();
                if(index == 6){
                 value = value.split('-').reverse().join('-');
                 console.log(value);
                }
                $('#setter #'+id).val(value);
            }
        });
    });
});


pero no entiendo por que esto no funciona
Código: javascript
var id = $(this).parent().attr('id');

y estoy obligado a llamar a perent() si supuestamente estoy en el objeto de el tag que estoy iterando
#10
Muy buenas, creo que se me escapa algo y no porque obtengo datos en blanco y nulos que no se el porque se muestran.

Código: javascript
$(document).ready(function(){
$('.getter').on('click',function(){
    var text = `<th>1</th>
                <th id="sport">Futbol</th>
                <th id="match">partido</th>
                <th id="bet">quien gana</th>
                <th id="mb">mb</th>
                <th id="mw">?</th>
                <th id="date">28-01-2018</th>
                <th id="dp">23-01-2018 15:49:06</th>
                <th id="_id">1</th>`;
    var object = $(text).find('th');
    var elements = object.prevObject;
    $(elements).each(function(){
        alert($(this).text());
    });
})

});


El resultado que esperaba es que pudiera obtener los valores de <th> pero por algun motivo obtengo 16 objetos cuando solo tendrian que ser 9 y el resto me los muestra en vacios ¿que es lo que pasa?
Otro detalle si cambio esta linea
Código: javascript
var object = $(text).find('a');

No debería retornar nada ya que estoy intentando obtener solo los enlaces pero aun así obtiene el mismo resultado.
Gracias.
#11
Dudas y pedidos generales / ¿Cuando usar socketio?
Noviembre 23, 2017, 11:30:46 AM
Muy buenas a todos, tengo duda de cuando usar este tipo de conexión, se como funcina pero no se cuando es adecuado usar socketio, segun parece para creaer chats viene bien porque transmite datos bidireccional y eso viene bien porque se transmiten al instante pero no se para que usos es mas adecuado parece una tonteria pero tengo esa duda.
#12
He logrado "soluciona" o mas bien podría decir que saber porque no puedo acceder desde mi red interna a mi pc con la ip publica, esto es porque mi router no tiene activado loopback para este router, pero eso no es problema porque usando un proxy soluciono el error.

Ahora el que me queda es saber porque solo me funciona con xamp solamente y no me funciona con nada mas, enciendo xamp, entro a mi ip publica y accede bien pero si pongo a la escucha flask no funciona y en otro puerto tampoco
#13
Si,como se ve en la imagen el DMZ apunta a mi pc pero no conecta nada, solamente xamp y desde un proxy
#14
Muy buenas compañeros, parece que estoy preguntando el tipico error de configuración de redirección de puertos pero no es asi, en mi caso es algo muy extraño que no logro solucionar desde hace ya tiempo, por ahora me servia porque mis pruebas eran solo con xamp pero ahora necesito mas puertos para mas pruebas, en mi caso cuando intendo acceder desde una pc o movil desde dentro de la red interna de mi casa a la ip externa me pasa lo siguiente


Como podeis ver, al acceder desde mi pc a mi ip externa accede directamente a mi router, esto no debería ser asi, debería acceder a mi pagina de xamp con los virtualhost configurados para acceder pagina, pero ahora pruebo desde un proxy y pasa lo siguiente


La pagina se ve correctamente y todo funciona bien pero eso no es lo mas curioso, si intento montar un servidor en python con flask en el mismo puerto

Código: python
from flask import Flask,Blueprint

from gevent.wsgi import WSGIServer
from views.uploads import uploads
from views.index import App,login_manager
from views.paypal import api
app = Flask(__name__)

login_manager.init_app(app)
app.register_blueprint(uploads)
app.register_blueprint(App)
app.register_blueprint(api)
app.config['UPLOADED_PHOTOS_DEST'] = 'static/images'

app.config.update(
    DEBUG=True,
    SECRET_KEY='secret_xxx',
    static_url_path='/static'
)

if __name__ == "__main__":
    http_server = WSGIServer(('', 80), app)
    http_server.serve_forever()
    #app.run()
    #app.run(debug=True,port=80)


Intento acceder desde el proxy y no me deja acceder, ni con flask ni creando un socket en otro puerto, lo he probado todo, he probado desactivando el firewall y poniendo mi pc como dmz para evitar mas problemas



El puerto 80 aunque no salga abierto deja parar conexiones y las demas no entiendo porque no pueden conectar y el motivo de este problema pero estoy probando todo lo que se me ocurre o no logro hacer ninguna conexión, he intentado abriendo mas puertos como el 6565, el 8080 y poniendo a escuchar en ese puerto pero nada... espero puedan ayudarme y gracias.
#15
Hay muchas cosas que no tienen sentido
Código: python

if list_cr_file == list_cr_input:
            break
            print("Welcome %s!" % login_name)
            maincmd()

Después del break no se va a imprimir nada
¿Porque tanto cambio de variable? Mejor quedaría así
Código: python

login_name = input("login: ")


Donde tienes la función password no solo guardas el password si no también el user
Código: python

def saveUser():
    list_cr_file = "n1sendev,1234\n"
    file = open('boot_data.txt', 'w')
    file.write('\r%s' % list_cr_file)
    file.close()

Guarda los datos en texto plano y para comprobar si esta el usuario en el archivo de texto no hace falta que lo guardes simplemente comprueba que coincida
Código: python

file = open('boot_data.txt', 'r')
for ln in file.readlines():
    split = ln.split(',')
    user,passwd = split[0], split[1]
    print(user)
    print(passwd)
    if login_name == user:
        if login_pass == passwd:
            print("Welcome %s!" % login_name)
            maincmd()
        else:
            print('password invalid') 
    else:
        print('user invalid')
file.close()
#16

Código: python

import mtTkinter as Tkinter
import Image,ImageTk

IMAGE_LABEL = 'img.jpg'

class MainWindow(Tkinter.Tk):
def __init__(self):
  Tkinter.Tk.__init__(self)
  self.geometry("400x400")
  lista = ("createImage","label")
  for i in lista:
   getattr(self,i)()

def createImage(self):
  openImage = Image.open(IMAGE_LABEL)
  self.image = ImageTk.PhotoImage(openImage)

def label(self):
  self.v = Tkinter.StringVar()
  self.v.set("0%")
  label_1 = Tkinter.Label(self,image=self.image)
  label_1.pack(fill=Tkinter.BOTH,expand=True)

  label_2 = Tkinter.Label(label_1,textvariable=self.v)
  label_2.pack(side="bottom")

window = MainWindow()
window.mainloop()

Yo te recomendaría que usaras mtTkinter que se usa igual que tkinter pero con la diferencia que no tendrás los problemas de congelación del widget al usar por ejemplo un progressbar o tareas que necesiten usar un hilo, pero mejor te recomendaría usar PyQt que es mas actualizada y conas documentación que incluye una gui que ahorra mucho trabajo
#17
Dudas y pedidos generales / Paypal en modo produccion
Noviembre 14, 2017, 10:47:27 AM
Muy buenas compañeros, estoy viendo la rest server api de paypal y estoy haciendo los test en modo sandbox, he creado una cuenta personal y otra business, la personal que es la que contiene el dinero ficticio y la business donde reciviré los pagos ficticios, todo funciona correctamente pero tengo una duda para ponerlo en modo producción, yo al crear estas cuentas la seccion de developer de paypal desde mi cuenta real y la cuenta business contiene el client_id y client_secret para trabajar desde el servidor pero yo lo que quiero es si lo pongo en modo producción que el dinero se ingrese en mi cuenta real de paypal pero en esta cuenta no tengo ningun client_id ni el client_secret necesarios para trabajar con esta api.
#18
Muy buenas de nuevo, estoy probando flask y me gustaría usarlo para algún proyecto pero quiero saber vuestra opinión respecto a usarlo con el servidor que monta flask porque en modo producción me dice que debo usar wsgi y en un servidor que lo soporte entonces quiero saber con vuestra experiencia si puedo usarlo en un vps  con el servidor que monta en modo desarrollo y que tipo de problemas podría tener ya que lo veo mucho mas como y que no se necesita de ninguna instalación de apache ni wsgi pero me preocupa que sea inseguro y porque.
Gracias
#19
Muy buenas a todos de nuevo, me he recorrido google para ver si hay algun módulo o librería para poder crear redes virtuales como podría ser hamachi o game ranger para poder jugar con otras personas online pero sin tener que estar en la misma red LAN fisica, no se si esto se podría lograr con el módulo socket.
gracias.
#20
Gracias me sirvio, ya puedo imprimir cualquier caracter, la verdad es que estos módulos hacen no tener muchos dolores de cabeza