« first day (2311 days earlier)      last day (1096 days later) » 

16:00
hola
me he encontrado con algo que no me imaginaba que podia pasar
estoy trabajando en un entorno cerrado donde solo tengo acceso mediante SSH al servidor de Desarrollo...
el tema es que hay una rutina en donde mediante un script debo conectarme a un servidor FTP
el problema es que al ser un entorno cerrado oviamente no puedo conectarme a un servidor FTP
he preguntado y el tecnico me dice que ese entorno tiene un servidor local FTP
entonces me resulta la duda ... puede un software consumir el protocolo FTP sin salir a la red por ejemplo el lugar de usar una ip de la red usar 127.0.0.1 esto solo lo habia visto con base de datos ... no lo habia visto con FTP
16:16
@Arcanis-TheOmnipotent ¿Si cambias la conexión del script a sftp?
@CandidMoe sabes como se podría procesar comentarios? por ejemplo imprimir("holas#"); #comentario
Estoy tratando de enviar este texto a una api desde python
Η ΚΆΡΤΑ ΣΑΣ 5351 **** ΕΊΝΑΙ ΑΠΟΚΛΕΙΣΜΈΝΗ, ΚΆΝΤΕ ΚΛΙΚ ΓΙΑ ΝΑ ΞΕΚΛΕΙΔΏΣΕΤΕ ΤΗΝ ΚΆΡΤΑ
Pero me da error
UnicodeEncodeError: 'latin-1' codec can't encode character '\u0397' in position 8: Body ('Η') is not valid Latin-1. Use body.encode('utf-8') if you want to send it encoded in UTF-8.
codificalo como utf-8 antes de enviarlo
texto.encode("utf-8")
message = "Η ΚΆΡΤΑ ΣΑΣ 5351 **** ΕΊΝΑΙ ΑΠΟΚΛΕΙΣΜΈΝΗ, ΚΆΝΤΕ ΚΛΙΚ ΓΙΑ ΝΑ ΞΕΚΛΕΙΔΏΣΕΤΕ ΤΗΝ ΚΆΡΤΑ"
texto = message.encode("utf-8")
TypeError: can only concatenate str (not "bytes") to str
:60526104 b'\xce\x97 \xce\x9a\xce\x86\xce\xa1\xce\xa4\xce\x91 \xce\xa3\xce\x91\xce\xa3 5351 **** \xce\x95\xce\x8a\xce\x9d\xce\x91\xce\x99 \xce\x91\xce\xa0\xce\x9f\xce\x9a\xce\x9b\xce\x95\xce\x99\xce\xa3\xce\x9c\xce\x88\xce\x9d\xce\x97, \xce\x9a\xce\x86\xce\x9d\xce\xa4\xce\x95 \xce\x9a\xce\x9b\xce\x99\xce\x9a \xce\x93\xce\x99\xce\x91 \xce\x9d\xce\x91 \xce\x9e\xce\x95\xce\x9a\xce\x9b\xce\x95\xce\x99\xce\x94\xce\x8f\xce\xa3\xce\x95\xce\xa4\xce\x95 \xce\xa4\xce\x97\xce\x9d \xce\x9a\xce\x86\xce\xa1\xce\xa4\xce\x91'
Eso me da a mi.
16:22
@CandidMoe Igual a mi.
No he podido enviar ese mensaje.
@Oswuell La variable textoes de type byte, no str. No puedes concatenar bytes.
@CandidMoe ¿Tiene alguna solución? para poder enviar este tipo de mensajes.
@Oswuell Concatenar primero, codificar después.
@CandidMoe ¿A que te refieres con concatenar primero?
en algún lugar estas concatenando un string, por eso te salta el error de antes
16:27
message = "Η ΚΆΡΤΑ ΣΑΣ 5351 **** ΕΊΝΑΙ ΑΠΟΚΛΕΙΣΜΈΝΗ, ΚΆΝΤΕ ΚΛΙΚ ΓΙΑ ΝΑ ΞΕΚΛΕΙΔΏΣΕΤΕ ΤΗΝ ΚΆΡΤΑ"
    texto = message.encode("utf-8")
    payload = 'message='+texto+'&to='+number+'&from=Info'
    print(texto)
eso es lo que tengo.
el error es claro
saca ese encode de message
@Oswuell no ya lo resolvi funciona con 127.0.0.1 pero la verdad que me ha extrañado que no requiera salir a la red el protocolo FTP para consumirlo
@Oswuell El error te da porque estás tratando de concatenar texto + algo. Primero forma el payload, luego conviertelo.
@Oswuell al final debes hacer payload.encode("utf-8")
@Christian que significa la palabra payload???
16:29
message = "Η ΚΆΡΤΑ ΣΑΣ 5351 **** ΕΊΝΑΙ ΑΠΟΚΛΕΙΣΜΈΝΗ, ΚΆΝΤΕ ΚΛΙΚ ΓΙΑ ΝΑ ΞΕΚΛΕΙΔΏΣΕΤΕ ΤΗΝ ΚΆΡΤΑ"
    payload = 'message='+message+'&to='+number+'&from=Info'
    s = payload.encode("utf-8")
De esa manera?
@Arcanis-TheOmnipotent supongo que carga o algo así
@Oswuell sip
@Christian ok y dentro del lenguaje que es payload???
@Arcanis-TheOmnipotent pues... el nombre de una variable
@Oswuell El resultado se ver razonable.
@Christian no lo creo
payload debe ser un objeto que contiene instancias de clases y métodos, ya que estas accediendo a .encode()
ese lenguaje es orientado a objeto???
16:32
es python
ha ok ... cuando estas aprendiendo un lenguaje... es importante que comprendas su esquema de trabajo ... escribir codigo y saber trucos del codigo que aprendiste copiando y pegando no es lo unico que debemos saber como programadores ...
@Arcanis-TheOmnipotent los string tienen el método encode para poder codificar un string a bytes, te retorna una cadena de bytes
En python todo es un objeto
sin ofender claro no soy un experto en python tampoco
@Christian pero tu me dijiste que payload es un una variable
y lo es
@Christian no lo es ...
16:34
es una variable que contiene un objeto
texto = "texto" es una variable que contiene un objeto
@Christian eso si es una variable
luego puedes hacer lo que quieras
@Arcanis-TheOmnipotent y cual es la diferencia con payload = 'message='+message+'&to='+number+'&from=Info?
ok ok
ya lo estoy entendiendo
igual es una variable
con texto = "texto" luego puedes hacer texto.encode() o texto.lower()
es como si hicieran esto:
("101").ToInteger();
16:37
int("101")
o si tubieras un decimal que quiere convertirlo en cadena de texto:
(101.253).toString();
eso si esta raro
son psudo ejemplos
eso que hacen son casteos.... de formato
lo sé, pero esos paréntesis que envuelven al número me parecen raros
en javascript seria algo asi:
let texto = "101.25"
let dfloat = (float) texto;
ahora la pregunta seria por que a un mensaje de texto o una variable con texto lo llamarian payload
16:41
por que será enviado a una api
yo lo veria mejor asi:
message = "Η ΚΆΡΤΑ ΣΑΣ 5351 **** ΕΊΝΑΙ ΑΠΟΚΛΕΙΣΜΈΝΗ, ΚΆΝΤΕ ΚΛΙΚ ΓΙΑ ΝΑ ΞΕΚΛΕΙΔΏΣΕΤΕ ΤΗΝ ΚΆΡΤΑ"
    complete_message = 'message='+message+'&to='+number+'&from=Info'
    s = complete_message.encode("utf-8")
seria mas legible
complete_message mensaje me lleva a comprender que la variable trata de la concatenacion de partes de mensaje en un mensaje completo
eso debes decirle a @Oswuell y no a mi
la palabra payload me lleva a pensar que estoy cargando algun metodo o objeto con algun dato
no entiendo porque no programar de manera descriptiva ... sera que soy tan anticuado ...
@Oswuell ya tomaste los apuntes?
@Christian que tu harías???
yo usaría msg, me acostumbre a payload cuando envío un objeto o json (o diccionario en python)
ejemplo de documentación de jwt en python:
encoded_jwt = jwt.encode({"some": "payload"}, "secret", algorithm="HS256")
payload no es una variable aquí, pero se usa para hacer referencia a los datos o carga útil
16:48
preferiría hacer payload = {"data": "algun dato", "message": "un mensaje"} y luego hacer api.send(payload)
si hay un dato que es el precio de una camisa y tienes otro dato que es su descripcion y tienes que guardarlo en dos variables como se llamaría cada variable??
depende que tan descriptivo quieres que sea el nombre de la variable, puedes usar el prefijo camisa para nombrarlas, por ejemplo camisa_precio o simplemente usar precio
aunque podrías crear una clase llamada camisa con atributos precio y descripcion
yo haría algo así:
sku_price = "precio"
sku_description = "descripcion"
bastante bueno
si tendria que contruir un objeto seri algo asi:
sku = {"price": "1.01", "description": "un mensaje de descripcion"}
cuando leas el codigo 6 meses o 1 año despues lo agradeceras
16:52
justo lo estaba escribiendo
me demoré al pensar en una descripción en ingles
eso es codificacion descriptiva, llamar a las cosas por lo que son...
incluso si no eres tu el que va a evaluar tu codigo; seria mucho mas legible y readable
la traducción de readable sería leíble?
me cuesta trabajo python por que veo que los que programan no usan un patron descriptivo ... y solo de pensar el chorizo que se les forma ... me da cringe
@Christian si perdon ... por lo anglisismos
@Christian seria leible y comprensible
a shap
@Christian te ha tocado que tienes que navegar entre muchas lineas de codigo para saber que es y de donde viene algo ... por que su descripcion no ayuda en lo mas minimo???
16:56
justo estoy revisando un pull request XD
@Christian y que tal??
tengo que usar ctrl+f para buscar las cosas
pero creo que es más por el orden
hay cosas que se definieron al principio y son usadas al final
@Christian ese es otro error comun ... cuando se codifica ...
lo ideal es agregar lo que vaz usando inmediantamente; tener un area de codigo para declarar todo y despues otra para trabar la logica puede tener un costo al final cuando hay mas de 200 lineas de codigo
bueno tambien depende del lenguaje
en el clase de php
las propiedasdes y constante si se declaran al inicio de las clases
pero las variable si se puede ir declarando en donde las vayas necesitando
antes había 500 líneas ahora hay 700 :/
me estoy dando cuenta que cometí muchos errores en mi propio código
@Christian ok
errores de control y validacion supongo
por que si el codigo va creciendo es por que hizo falta algo
no por que este mal escrito

« first day (2311 days earlier)      last day (1096 days later) »