« first day (2234 days earlier)      last day (873 days later) » 

1:10 AM
Un problema de matematica:
¿Como saco la raiz doudecima de 2?
No entiendo mucho de como hacer la formula:
Y apricarla al piano.
¿Una ayuda?
 
1:37 AM
Listo ya consegui el resultado, era que la formula de ese lugar parece que esta mala, aqui esta mi solucion: Math.sqrt(Math.pow(2,i+(i%2==0)?((i==0)?0:2):1))
 
 
7 hours later…
8:30 AM
Hola!!
 
8:46 AM
Egun on
 
9:03 AM
hay alguien?
 
 
5 hours later…
2:28 PM
Una pregunta. Tengo una BD que almacena info de personajes: nombre, nivel, rango, precio, etc. Quiero montar un notificador que utilizarán usuarios para conocer cuando un personaje entre nuevo a la bd con un nivel o/y precio concreto le avise por Telegram/Email, etc.

No entiendo aún cómo puedo hacer la parte de comprobación de lo que el usuario quiere (nivel, precio, etc) ya que no puedo poner un cron por cada usuario, si tengo 2000 (por decir algo) tendría que poner 2000 cron y sería una locura. Alguna idea ??
 
2:57 PM
@jask Haría una tabla para asociar cada personaje con sus "seguidores". Cada entrada contiene (id_personaje, id_seguidor, cond). Recorres la tabla aplicando cada condque encuentres. Si se cumple, notificas al seguidor; Queda por codificar la condición ...
 
 
1 hour later…
4:22 PM
jolas
alguien por aquina???
 
4:50 PM
alguien me ayuda con esto
0
Q: relacion bidireccional entre tablas?

Arcanis - The Omnipotentestoy diseñando el esquema de unas tablas de usuario y Cursos/Seminarios/charlas; en la cual un usuario puede tener múltiples cursos estos cursos están en una lista de Cursos; esta parte ya esta relacionada; pero ahora me veo en la necesidad de diseñar una tabla de pre-requisitos; el problema que...

 
 
2 hours later…
6:51 PM
Hey @Legna bienvenido/a
Yo particularmente pefiero usar Clases en vez de Interfaces en Typescript, al momento de transpilar la Interfaz se pierde totalmente. En cambio las Clases persisten.
 
@MauricioContreras :D
 
A ver si Diego se une.
 
@MauricioContreras Creo que en este caso en particular, esperando la aclaración del usuario, el problema se debe a que esta recibiendo una respuesta en json y esta haciendo un parse a una clase. De esta manera se pierden algunas características como las funciones.
Otro problema que me he encontrado es que si tienes propiedades que pertenecen a una clase propia, no los reconoce como tal y hay que ir haciendo el parseo propiedad por propiedad hasta reconstruir la funcionalidad entera de la clase.
 
@Legna pues mientras no sepa a ciencia cierta cómo recibe los datos o de dónde los obtiene estará difícil ayudarle. El tema es que al transpilar, toda la lógica detrás de los tipos se puede derrumbar.
 
De ahí que prefiero las interfaces. Por aquello del autocompletado.
 
6:58 PM
@Legna claro, no niego que las interfaces son lo mejor durante la escritura del código, pero al final, al transpilar, pues se hace humo. XD
 
Hola! que no me dejaba loguearme en el chat. os leo y os digo
 
@Diego Bienvenido
 
@CandidMoe Conoces el advent of code? (adventofcode.com/2021) Estoy ahora con ello. El reto del día 3 me ha gustado mucho
Me gustaría ver la solución en C++ de @Trauma
 
Os cuento un poco la idea de lo que estoy montando. Es un componente de interfaz, el cual voy a usar para montar todos los grid que hay en la aplicación, entonces me pueden llegar diferentes tipos de datos, los cuáles, luego dependiendo de lo que llegue, montare las columnas para mostrar los datos
El problema es que no se como puedo saber cuando el Objeto ítems contiene un array de Club, de Bike, o de lo que sea
En C# es muy sencillo hacer esta comprobación con un is, me extraña que en Typescript sea tan complicado
Por el momento, he encontrado en GitHub una librería que me permite usar este is, pero claro, si lo pudiese hacer en nativo, muchísimo mejor
 
@Diego esos datos los recibes en tiempo de ejecución, cierto?
 
7:01 PM
Yo no trabajo con POO en mis datos. Todas las operaciones van a servicios.
 
@Diego mira esto:
 
@MauricioContreras Me intriga esta parte de que se esfuman las interfaces, a que te refieres?
 
Si @MauricioContreras
Los datos vienen de la API de strava
 
Jo, el URL es muy largo. XD
@Legna conoces TS Playgorund?
 
@abulafia Se ve interesante.
 
7:04 PM
Son pequeños retos de programación para resolver en el lenguaje que prefieras. Te dan una entrada en forma de texto junto con instrucciones de cómo hay que procesarla para llegar a un resultado, que luego debes introducir en una caja de respuesta
la cosa se suele complicar rápidamente. Otros años suelo dejarlo al llegar al día 8 o así...
 
helou!
 
Son ideales para ejercitar el músculo python
 
como puedo leer los argumentos pasados por la consola sin usar argparse?
 
@Christian sys.argv es una lista donde están esos argumentos
argparse es para cosas más complicadas, en las que los argumentos son opciones con parámetros, switches, etc...
 
ok, muchas gracias ^_^
 
7:06 PM
pero nada te impide procesar todo "a mano" a partir de la lista en sys.argv
 
@MauricioContreras estás ahí? esto es una locura cada loco hablando de su tema :D
 
solo quería algo simple
 
@MauricioContreras Ahora si, hice la prueba y ya entendí, jajaja
 
@abulafia tal vez te interese participar en la maraton behind the code que organiza IBM cada año
El año pasado quedé en el puesto 240
 
@Christian yo suelo usar el paquete click para hacer herramientas de línea de comandos. Usa decoradores para declarar qué opciones admite tu programa, de qué tipo son, qué valores por defecto tienen... y se ocupa de interpretar todo de forma transparente y pasar los resultados como parámetros a tu función. Y hasta genera documentación por si el usuario pone mal los parámetros o pone --help
 
7:08 PM
Se tocan diversos temas como kubernetes, IoT, ciencia de datos
 
No es para casos de uso simples, sino para hacer muy simple la programación de casos complicados
 
@Diego Si, estoy aquí
 
@Christian se ve interesante
 
pues si lo es, gracias a eso conocí python
Este año no pude participar por motivos de estudio
 
@MauricioContreras Aunque no esperaba lo contrario. Solo lo uso para no olvidarme de las propiedades XD
 
7:10 PM
@MauricioContreras pues lo dicho, viene de la API de Strava. Pero entiendo que para saber el tipo igual dará no? Si no... se me acaba de desmontar Typescript por completo jaja
 
@abulafia lo tendré en cuenta cuando haga mi propia consola. Por ahora solo quiero recoger 1 argumento y quería hacerlo de la forma más sencilla y pensaba que no se tenía que importar algún modulo
 
@Christian sys.argv[1] te da ese argumento
sys.argv[0] es el nombre del propio script python que estés ejecutando
 
gracias
file es una palabra reservada?
 
@Christian No, pero no conviene usarla porque es un tipo de dato
Hm... ahora no estoy seguro tampoco de que lo sea
no, parece que ni eso. No es palabra reservada ni tampoco el nombre de un tipo, ni de un módulo, ni de nada que yo haya podido encontrar
 
8:00 PM
un poco raro la verdad
 
8:23 PM
@CandidMoe La pregunta es, ¿Cómo lanzo (que no sea con un cron) que cada 1/5/10 o más minutos compruebe la condición?
 
@jask ¿Te he hablado de Asyncio?
 
@CandidMoe Nu, voy a indagar qué es :) gracias
 
@jask No, esperate.
Hace rato que quiero publicar algo con asyncio, pero me falta un caso real, práctico, aterrizado.
 
@CandidMoe Ah vale, pensé que era una pregunta retórica xD
 
Entonces, si puedes hacer una pregunta al respecto, sería genial.
¿Cual es tu caso real?
 
8:28 PM
@CandidMoe Básicamente yo busco en una store nombres, ids, precios y nivel de personajes. En un chatbot de Telegram, el usuario establece filtros, por ej: "Quiero que me avise cuando el personaje X con nivel Y tiene el precio Z (o está entre precio Z y W)", dependiendo de la "aportación" que hagan (que valoraría por otro lado) tendrá un "delay" en revisar la base de datos que, paralelamente voy actualizando por otro lado. Si el usuario ha hecho una donación al canal, podrá revisarse cada minuto
Si no ha donado nada, tendrá un límite de consultas al día, o serán "más lentas" (cada 5 minutos, por ej) cosas así, aunque lo de la donación y el delay vendrá más adelante, me gustaría adelantarme para en un futuro no tener que recodificar todo
Como nota, la búsqueda que establece el usuario puede ser variada: "que solo le avise cuando un personaje cualquiera tenga < un precio concreto, que esté entre varios precios, que tenga un nivel..." es una conjunción de AND/ORs
 
@jask Perfecto. No estoy en el tema de bot. ¿Puedes hacer un ejemplo mínimo a partir del cual trabajar? Puedes simplificar el código real.
 
@CandidMoe la parte del scraping la tengo, me falta la parte de BD y notificaciones, como van de la mano, aún no la hice por no tener ni idea por donde tirar...
 
Simplifica. Sustituye la BD por funciones de fantasía.
 
Un conocido me dio una idea de utilizar vistas... pero claro, tendría que generar X vistas por usuario y por tipo de búsqueda, lo mismo un usuario puede tener 5 búsquedas diferentes.. no lo termino de ver.
 
Lo mismo simplifica la consulta.
Hay que separar los temas. El problema es correr dos cosas concurrentemente. No es necesario entrar el gran detalle sobre esas cosas.
 
8:34 PM
@CandidMoe había pensado hacer y lanzar 2 "bots". Uno para el scraping y otro para revisar la BD .. pero si lo puedo hacer todo en uno casi que mejor
 
Eso va mejor. Puedes plantear el problema asi: tienes dos bots independientes que quieres correr "en paralelo".
Antes tengo que revisar algo. ¿Qué librería usas?
 
python-telegram-bot requests mysql-connector-python
También logging, json, time, os y datetime. Estoy reciclando otro proyecto que tengo por lo que alguna seguramente sobre, de momento con estas aparentemente voy bien.
 
@jask ¿Las llamadas a telegram bloquean?
 
lo que hago es armar un mensaje y mandarlo (para notificar sobre un personaje), se podría hacer también asíncrono.
Lo que no entiendo muy bien es, ¿a que te refieres con "bloquear"?
 
Estoy mirando la documentación de Telegram y me da la impresión de que opera todo con callbacks. En tal caso, ¿qué problema tienes para ejecutar otro proceso a intervalos?
 
8:43 PM
Lo único que si envías varios mensajes a la vez (menos de 5 segundos entre uno y otro) lo detecta como spam y no se envían.
Tendría que ver qué otro proceso podría ejecutar a intervalos ya que los dos principales son el scraping + almacenado en bd y la comprobación + notificación de lo que busca el usuario.
 
Para seguir avanzando tendría que ver el código. Si publicas una pregunta con un código que sea llegar-copiar-y-ejecutar me pondré a trabajar en ello.
 
@CandidMoe umm vale entiendo que el ejemplo lo quieres para adaptarlo y para ponerlo como ejemplo, valga la redundancia, de asyncio, ¿verdad?
 
@jask Quiero ver el problema y proponer una solución adecuada. Por lo que me cuentas, me da la impresión que se puede resolver más sencillamente.
 
@CandidMoe Perfecto, pues voy a trabaja en un ejemplo para postearlo :) Muchas gracias !
 
9:11 PM
@MauricioContreras Como estas , como siempre yo con carga laboral todo tranquilo hermano , y tu como te encuentras? como van las cosas por españa :D?
 
 
1 hour later…
10:31 PM
@CandidMoe El reto del día 4 (bingo) también mola mucho, sobre todo la segunda parte. No es nada trivial
 
@abulafia Bingo es una lotería con pasos adicionales.
 

« first day (2234 days earlier)      last day (873 days later) »