Feda /dev/

Ranthas

#37739 No programando

1 respuesta
desu

#37737 Que problema tienes. Lo llevo bastante al toque tema promesas en java.

Markitos_182

#37741 así llevo yo un mes y todo perfecto

Tuskus

Si nunca has sabido, no se te puede olvidar, ese es mi truco.

2
LLoid

En realidad no sé cuánto tiene que ver mi problema con el threading, pero seguro que no tiene nada que ver con promises xD

La mierda es que tengo una clase implementando Runnable, creo instancias de la clase, arranco los threads de dichas instancias y con un flag termino el run() cuando necesito. Pues cuando creo nuevas instancias de alguna forma se me quedan campos de clase en memoria de instancias anteriores, aunque en teoría el hilo ha terminado y el GC ha limpiado. Mirando con el debugger una de esas instancias, uno de sus campos de clases en un método es un objeto y en otro método es otro objeto, un mierdel enorme vamos :man_facepalming:

Como el código ya es una puta mierda legacy del 2014 lo voy a solucionar por la rápida metiendo static y haciendo la guarrada mayor

Besis

1 respuesta
desu

#37745 Si esa clases es tuya no implementes runable, debería ser calllable

Luego usa futureTask o CompletableFuture, yo trabajo con futures por un motivo que no recuerdo xd

Ahora ando mirando como hacer java reactivo, quiero un observe/observable de toda la vida pero se quee estan deprecated ... Tengo quee meter una librería reactiva externa si o si? Alguna ligera que recomendeis? O me implemento yo la mía sencilla? si es solo para hacer push.. Y actualizar un servicio.. Es súper sencillo..

1 respuesta
Soulscx

cuidado q no te hagan push en la cara

Martita-

Gente una consulta de Java.
Tengo que comprobar con regex los campos que vienen en String en una peticion, y luego quiero comprobar los campos Integer, Date y Timestamp por separado, solo viendo si son del tipo correcto.

El problema es que tengo que comprobar 38 campos de la tabla.
Hay alguna forma de no tener que meter montones de ifs para ir comprobando campo por campo?

3 respuestas
LLoid

#37746 Si yo tuviera tiempo refactorizaría toda esta mierda, pero no es el caso y ya he tirado por el camino de la ñapa xd
Runnable era y runnable será

HeXaN

#37748 Claro, un map por ejemplo.

1 1 respuesta
Troyer

#37748 donde se definen las reglas de las validaciones para los campos?

Si lo tienes así solo debes de hacer un validator:

Modelo Polla
> $size = "Int | min:30"
> $beforeGay = "Int | fixed | 3"
> $validTargets = "regex:/$VISA"

1 respuesta
Martita-

#37750
Te refieres a un hashmap imagino no?

#37751
He de decir que yo de backend no tengo ni idea, pero me ha tocado modificar esto para que no inserten codigo en la base de datos.

Que yo sepa no hay ningun modelo en el proyecto que estoy tocando o yo no se donde esta, solo se la clase que luego se inserta en la base de datos.

Yo estoy mirando directamente en la base de datos que tipo de dato es y el numero de caracteres que permite y si se permite nulo o no.

1 respuesta
Troyer

#37752 pues si no hay validator te toca hacer los putos ifs.

Te recomiendo hacer una validator para la clase, tienes aquí ejemplos:

https://docs.spring.io/spring/docs/4.1.x/spring-framework-reference/html/validation.html

EDIT: Oh shit, tienes que validar los datos que coges de la db? Que cojones? xd

La base de datos debe de ser siempre "trust source", si se deja insertar datos erróneos esta todo mal desde el principio xD

1 respuesta
Martita-

#37753
No no, tengo que comprobarlos con regex antes de la insercion.

1 respuesta
Troyer

#37754 entonces haz un validator y en cada campo le pones el regex y ya está...

Ranthas

#37748 Como ya te ha dicho @poyer ( @Troyer ), tienes que hacer varios validadores, uno por cada tipo a revisar (Integer, LocalDate, etc)

Luego los usas en el modelo y en combinación con la anotación Valid ya se encargaría el fw de hacer la validación. También deberías hacer la validación en las entidades.

Esto asumiendo que estas trabajando con Spring, claro.

Troyer

Me cago en el Datenträgeraustauschverfahren y en su puta madre.

1 respuesta
B

#37757 buen nombre para una variable xD

B

Tengo una lista de elementos que son una "url" y su icono correspondiente, estaría bien guardarlos en un map usando la url como key y el icono como value de cara a trabajar con ellos más fácil? (En este caso insertarlos en html)

2 respuestas
Grise

#37759 No.

1 respuesta
B

#37760 mierda

isvidal

#37723 pue e fasil julio

const 🦆 = async () => {
const 💕 = await FuncionQueDevuelvePromesa()
return 💕 // 💕existe porque con await esperas a que se resuelva la promesa, pa bien o pa mal (Si tienes un catch)
}

var pato = 🦆()
console.log(pato) // Pato aun es una promesa pendiente, porque 🦆 es asincrona y se esta resolviendo en otro hilo de ejecucion

// para tener pato disponible en el console log tendrias que encapsularlo en otra funcion asincrona

const 🎁 = async () => {
var pato = await 🦆()
console.log(pato)
}

console.log(🎁()) // imprime promesa

#37759 Si ya los tienes en un listado con su url y su icono, para que quieres volver a mapearlos para tener algo que ya tienes ?

2 respuestas
Soulscx

en mi epoca no existian las promesas, todo se solucionaba al momento

3 1 respuesta
B

#37762 nada, cosas mías

JuAn4k4

#37699 #37700 desde móvil pero se entiende:

foreach((c, index) => setTimeout(() => console.log(c), index*1000))
1 respuesta
Markitos_182

#37763 el mundo sincronizado era mas simple

B

#37765 Como que index * 1000? Ahí imprimes em index 0 en 0 segundos, el 1 en 1 segundo, el 2 en 2 segundos...

Tiene que ser toda la cadena en 1 segundo.

1 respuesta
Grise

Mi solución era la mejor.

Zerokkk

Extendiendo un poco la explicación de #37762, cuando necesitéis esperar a que varias promises se resuelvan antes de llegar a un punto, podéis usar este truco:

// Funciones asíncronas de ejemplo
const promiseFunc1 = async () => { /* cosas asíncronas 1 */ }
const promiseFunc2 = async () => { /* cosas asíncronas 2 */ }
const promiseFunc3 = async () => { /* cosas asíncronas 3 */ }

Workaround 1: lanzar todas las funciones a la vez y esperar de forma síncrona a que todas se satisfagan:

const resultado = await Promise.all( [promiseFunc1(), promiseFunc2(), promiseFunc3()] );
// esta línea se ejecutará cuando se hayan satisfecho las promises.

Workaround 2: lanzar las funciones, continuar el hilo de ejecución debajo, y ejecutar un código determinado cuando estas finalicen:

Promise.all( [promiseFunc1(), promiseFunc2(), promiseFunc3()] ).then( (res) => {
   // movidas que quieras hacer cuando se satisfagan las promises
});
// código que quieres que se ejecute sin esperar a que se resuelvan las promises

edit: De hecho, a los que trabajéis en servidores de Node, y tenéis que establecer dos hilos de ejecución distintos (uno para consumir los datos recibidos en las promises, y otro independiente de estos resultados, similar a lo que sucede en el workaround 2), hasta podéis spawnear un child process (lo que viene a ser concurrencia de toda la vida) en el cual realicéis y consumáis dichas peticiones. Documentación aquí; yo lo he probado y va perfectamente en las últimas versiones de Node.

5
Wei-Yu

¿Alguien ha hecho algo de i18n en angular? ¿Cómo fue la experiencia? Estoy viendo que hay alternativas muy diferentes entre sí y tengo curiosidad por ver si alguien tuvo problemas con la forma en que lo hizo.

Yo estoy atado con respecto a cómo hacerlo; es mera curiosidad.

1 respuesta
Tema cerrado

Usuarios habituales

  • desu
  • Fyn4r
  • HeXaN
  • Merkury
  • eXtreM3
  • MisKo
  • Troyer