« first day (1999 days earlier)      last day (1092 days later) » 
01:00 - 16:0016:00 - 00:00

1:25 AM
JAJAAQAAAAA
NOS GUSTAN LAS ORTIGAS JAJA
HOY LA APUESTA LA GANE YOOOO
El men tocando la ortiga y yo que que que le paso jajajaja
 
 
4 hours later…
5:00 AM
Wenas
 
5:42 AM
Buenos dias
 
6:24 AM
Buenos dias
 
A las güenas :-)
Asco de Martes :-(
 
Buenos dias
 
6:42 AM
@Trauma como sigas así te llamaré Gargamel
 
Pues vale >:-(
static std::map< int, std::vector< std::pair< std::string_view, std::string_view > > > partitioning( const std::vector< std::string > &keys, const std::vector< std::string > &values ) {
    std::map< int, std::vector< std::pair< std::string_view, std::string_view > > > result;

	for( unsigned idx = 0; idx < keys.size( ); ++idx ) {
		int hash = keyHash( keys[idx] );
		result[hash].emplace_back( keys[idx], values[idx] );
	}

    return result;
}
@MauricioContreras ¿ Crees que puedo tener un buen día ? ^^
 
Y cuál es el problema con tu código?
 
Ninguno, funciona bien
Solo hay que hacer que se integre con pyhton
Que eso ya es otra historia
 
@Trauma Tú no odias los martes, tú odias el capitalismo
 
No los odio, solo me dan asco.
Como todos los días que siga estando en el churro de proyecto este
 
6:48 AM
Pues eso :-)
 
ah carajo, que no lo pillé
Pues si, has acertado
Se suponía que me cambiaban a uno de Securitas-Verisure
Y en mitad de la entrevista, va el colega y dice que quieren a alguien de Madrid, para cuando vuelvan a las oficinas
Ende luego, mucho people ... pero no se enteran
 
Bueno, resignación y paciencia
 
Tengo mucha de ambas ... mayormente porque no me queda mas remedio
 
y que no falte la leche condensada
 
Pero estamos llegando al punto ... de no decir ni adiós cuando me vaya
@abulafia jejeje ... sin problema. Está controlado
Vaya churro de API que tiene redis-plus-plus
Tiene 2 clases totalmente independientes, sin herencia ni nada: Redis y RedisCluster
Y hay que llenar el código de if( ) else { }
if( conn.alone ) {
		// Alone.
		for( const auto &item : partitions ) {
			redis_adaptors::Set< sw::redis::RedisCluster >::set( conn.alone.get( ), item->second, conn.options.batchSize );
		}
	} else {
		// Cluster.
		for( const auto &item : partitions ) {
			redis_adaptors::Set< sw::redis::RedisCluster >::set( conn.cluster.get( ), item->second, conn.options.batchSize );
		}
	}
 
7:32 AM
@Trauma haz como yo, cuando me voy suelto un enga y me marcho con la cabeza bien alta
 
Es muy mucho posible que haga algo parecido, si
Vaya temita con Redis en cluster.
Resulta que hay que subir los datos en paquetes con el mismo hash según Redis
Creo que un memcached nos hubiera hecho el mismo apaño, costando menos
 
¡Buenos días gente cool!
 
O_o
Me recuerdas a mi jilguero, cantando desde por la mañana temprano
 
¡Hay que empezar el día con garra o se te come por los pies!
 
... pues vaaaleeeeee ...
 
7:39 AM
Además, ando aprendiendo Vue y estoy super contento ^^
 
jelou
 
@phpMyGuel ¿ Entraste en la empresa de @lois6b al final o que ?
 
Nuuuu, que va. Lo que conseguimos es convencer a la empresa en la que curro que o nos modernizamos o nos morimos XD
 
@phpMyGuel ¿ De 0 ? ¿ Bien hecho desde la base ?
 
@Trauma no :/
 
7:41 AM
Eso no se ve todos los días O_O
 
@phpMyGuel mi empresa está valorando crear paginas webs/landings. hablan de meter perfiles back php/.net xDDD
pero eso pa futuro
 
Bueno, estamos empezando con el front. La idea es hacer llamada API y listos. Separar totalmente el front del back.
 
El put_ Redis este está dando mas calor de la cuenta:
terminate called after throwing an instance of 'sw::redis::ReplyError'
  what():  CROSSSLOT Keys in request don't hash to the same slot
Aborted
CROSSSLOT. Pues vale O_o
 
Luego el backend queremos ir separándolo en microservicios.
A ver lo que nos dejan. Yo creo que no saben bien los jefes lo que nos puede llevar eso realmente y que en cuanto se den cuenta nos ponen con otras cosas XDD
@lois6b Ya me dijeron cuando me entrevistaron, que valoraban mucho el hacer desarrollos desde cero.
 
Nosotros nos estamos moviendo a microservicios, está ya casi todo migrado
 
7:45 AM
@PabloLozano Es que es lo lógico. No se puede ir con el monolito a la espalda en estos tiempos que corren.
 
la coordinación entre ellos es compleja
@phpMyGuel Todo tiene su motivo, en una empresa pequeña con requisitos reducidos una app monolítica tiene sentido
los microservicios son mejores cuando superas una cierta complejidad y tamaño
entonces hay que cortar
pero si lo haces antes, es peor el remedio que la enfermedad
 
@PabloLozano Siendo pequeña si. La nuestra aunque no es muy grande genera una barbaridad de tráfico y llamadas externas a WS que hay que separar forzosamente.
 
nosotros tenemos como una docena de microservicios solo para manejar las cuentas de los usuarios... cada uno con decenas de instancias
 
De hecho al mirar las Web de nuestros competidores, todos han ido migrando a microservicios.
 
pero en mi anterior empresa teníamos 3 aplicaciones
 
7:48 AM
Bueno sí... Como no se haga bien puede ser peor la cosa.
 
lo comento porque "microservicios", "docker" y "kubernetes" parecen ser ahora palabras mágicas que arreglan todo
 
Ya ya, la panacea no son. Pero en nuestro caso por ejemplo, metiendo las llamadas a los WS en un microservicios con un sistema de colas ganaríamos muuucho, pero que mucho mucho.
Porque tenemos muchos accesos concurrentes todos haciendo llamadas externas.
 
@lois6b .net welkome my friend
 
 
1 hour later…
9:00 AM
Valiente churro que es Redis en cluster. Los tiempos se disparan una burrualidad
Creo que no termina la operación hasta que no ha sincronizado todos los componentes de cluster.
 
Hola!
 
9:15 AM
por un casual no conocereis algo como esto pero menos de los 90 y mas de este siglo? fperucic.github.io/treant-js
 
@Pikoh ostie! esta es la aparato reproductor masculino
 
me quedo con la de gojs, que para el sector de industria tiene cosas muy interesantes
mierda es de pago
 
 
1 hour later…
10:32 AM
I caught my son chewing on electrical cords.
So I had to ground him. He's doing better currently. And conducting himself properly...
es buenisimo. adoro los juegos de palabras
 
10:45 AM
Ben Popper on April 19, 2021
April Fool’s may be over, but once we set up a system to react every time someone typed Command+C, we realized there was also an opportunity to learn about how people use our site. Here’s what we found.
 
@abulafia uhh que interesante
 
One out of every four users who visits a Stack Overflow question copies something within five minutes of hitting the page
 
Pues mira...me parece una de las mejores formas de estudiar el comportamiento de los usuarios. Muchos no votan, comentan..pero ver quien copia codigo si que dice mucho
 
La mayoría de los "copiones" tienen repo 0, que quiere decir que ni tienen cuenta en el sitio
 
11:11 AM
o no la tienen guardada
 
11:24 AM
@abulafia No sé si eso sólo significa que hay muchos más usuarios con rep 0 o que la gente con rep alta copia menos "per cápita"
ah, veo que hay un gráfico per user
 
en mi caso si que ha bajado el numero de ctrl c ctrl v por día
pero es parte de la curva de aprendizaje, si ya sabes hacerlo por que vas a copiarlo
y aparte los problemas se van volviendo mas complejos y las preguntas a las que acudas también, asi que lo mas seguro es que la respuesta no sea para copiar y pegar sino para comprender
 
pufffff ... 32420ms en subir 100 keys a Redis
Vaya put0 churro
 
 
1 hour later…
12:59 PM
Wenas
 
@MauricioContreras te has pasado al horario de tarde?
 
estoy empezando a odiar Groovy
la sintaxis es lo más feo desde Perl
y cuando algo falla no soy capaz de entender el por qué
 
esa mania que tienen en J de hacer lenguajes sobre el lenguaje... porque no pueden solo quedarse con J??? cual es la necesidad de meter mas lenguajes arriba?
 
@NicolasOñate no, sucede que esta semana ando medio desconectado
 
@PabloLozano es java ese es el principal problema
 
1:10 PM
@NicolasOñate No es Java y cualquier parecido es pura coincidencia
 
@MauricioContreras yo dentro de dos semanas igual :P
Groovy es un lenguaje de programación orientado a objetos implementado sobre la plataforma Java. Tiene características similares a Python, Ruby, Perl y Smalltalk. La especificación JSR 241 se encarga de su estandarización para una futura inclusión como componente oficial de la plataforma Java. Groovy usa una sintaxis muy parecida a Java, comparte el mismo modelo de objetos, de hilos y de seguridad. Desde Groovy se puede acceder directamente a todas las API existentes en Java. El bytecode generado en el proceso de compilación es totalmente compatible con el generado por el lenguaje Java para la…
 
Simplemente se compila a bytecode
 
usa una sintaxis muy parecida a java
 
es como decir que C y pascal son iguales porque el backend del compilador es el mismo
 
bueno, para eso esta el comentario de @gbianchi
 
1:13 PM
y el JSR 241 está en estado dormant, es decir que nadie tiene interés en añadirlo como algo "oficial" a un JDK
 
Ruby, Perl, Python, Smalltalk, le faltó alguno?
 
Le faltó Java o C#, para dar un poco de sentido común
 
no metas a C# en esto
C# no necesita a ese monstruo
ya tiene los suyos propios
 
estoy diciendo lo contrario, ese monstruo necesitaría ayuda de un lenguaje decente y previsible
 
ah no, datatables es jquery, no he dicho nada :P
 
1:15 PM
de esos que lees y entiendes incluso sin trabajar con él
Yo leo C, C# o Python y se entiende más o menos
con Groovy...
nunca estás seguro
 
puedes poner un ejemplo?
 
@PabloLozano python menos... sobre todo esas versiones modernas que hacen cosas raras.. los otros se leen tranquilamente...
 
@NicolasOñate Mira qué bonito:
validateTransaction(callbackBody.paymentId) { txParams ->
        final def hashKey = txParams["routing.hashKey"]
        String rawExpectedHmac = callbackBody.with{
            "paymentId=${paymentId}&amount=${amount}&status=${status}&accesskey=${hashKey}"
        }

        return equalsIgnoreCase(callbackBody?.hmac as String, md5Hex(rawExpectedHmac))
    }
le pasas parámetros a un "closure" (no una función)
pero luego le pasas más parámetros ¿como identificador del contexto?
 
Es como un hibrido entre angular y java
 
la cuestión es que si creo una función en "raíz" y la intento llamar desde dentro de un "closure" de estos, me dice que no existe
nonono
Angular es Typescript
que es JS con tipos
 
1:23 PM
si lo se
me refiero a las etiquetas en el html
que es con llaves como esto
pero se le suma la ilegibilidad de java
comprendo tu problema
 
nop, Java es igualito que C# pero con MENOS cosas
la sintaxis es más homogénea
no tiene ni el get/set
tienes que escribir a mano cada getter y setter
 
java no es poco legible. Es malo, pero no ilegible
XDD
 
es homogéneo, sin sorpresas
no se puede sobrecargar un operador
sólo hay métodos y clases
 
por lo menos cuando estudiaba el tener que empezar desde la raiz para realizar algo me sacaba de quicio
con lo facil que son los using loquesea
 
groovy es... sorprendente
 
1:26 PM
loquesea.hazHalgo() vs java.lang.nomeacuerdomas.otracosa cosa ...
@PabloLozano la verdad es que si todo el codigo es asi, te entiendo es horrible
 
@NicolasOñate Peor aún: la documentación de C# y Java es clara, la de Groovy es mala
 
Documentación de Java clara???
 
me la he leído entera y sigo copiando y pegando de otro código similar porque no me entero de lo cómo funciona por debajo
 
@PabloLozano bueno, c# a veces la documentacion levanta dudas e incertidumbres
 
Joer, así será Groovy
 
1:29 PM
así que cuando intento algo que se sale del A,B, C hecho hasta ahora
empiezo a ver errores que no entiendo
el scope me está volviendo loco
 
Fatal Exception in groovy
 
Te sientes como los de PHP, que copian, pegan y se sienten programadores. Pero no les muevas el piso, que se caen de cara. XD
 
@PabloLozano tienen unas ideas de scope medias raras no?
 
@gbianchi sólo se que tengo esto
def funcion () {...}
unaClosure { dato ->
  funcion(dato)
}
error: no sé que es funcion
 
pero en el codigo que has pasado no hace funciones
 
1:32 PM
ehhhh... ahhh...ehhh... yo la estoy viendo eh jajajajaj
 
si es asi si lo igualas a una variable puede que funcione
 
creo que está relacionado conque realmente es un método, en la documentación no se habla de funciones nunca
pero no estoy en ninguna clase
así que no sé de que clase son los métodos en un script
lo divertido de esto:
no usamos Java porque los scripts se pueden cargar dinámicamente
como python
y estos scripts son para configurar el comportamiento de un componente
y necesitaban que los operadores pudieran cambiar el comportamiento sin recurrir a los desarrolladores!
pero si los desarrolladores no lo entendemos!
sé que no soy en mi equipo el único que se vuelve loco con esto
def func = { param -> ...}
ale, arreglado
 
asi que las funciones tienes que declararlas con def que equivaldría al var de c# que es comodin y vale todo
 
No, las funciones se declaran como `String myfunction(param) { ..}
lo que he declarado ha sido una closure
es decir, una clase con un método :P
 
xD
Y que raro que una funcion se cree con la palabra string
String que no es cadena?
 
1:43 PM
No, estoy declarando lo que devuelve
como en C/Java
 
Ahhhhh entiendo
Por eso me gusta Python, nada de decirle al lenguaje que es lo que debe devolver
O que tiene que estar en una variable
Nada de var[string]="hola"
Puede cambiarse el tipo de dato que hay en la variable facilmente
 
@DanteS. y eso, provoca montones de errores en tiempo de ejecucion....
 
@DanteS. opcionalmente puedes decirlo
 
@NicolasOñate var no es comodin ni hace que valga todo.. en tal caso seria dynamic...
Var en c# es sugar... la ide se fija de que tipo es, y define a esa variable de ese tipo...
 
actualmente se maneja mucho ":" para dar el tipo de dato pero antes si se hacia de esa forma
public myfunction(param) : String { ..} en ts y kt
 
Desesperao. Me tiene desesperao
Start SET ...
End SET. Time: 32187ms
 
32 segundos para qué?
 
Asco de Redis
para subir 100 keys a Redis, usando Redis Cluster
algo que, contra un Redis de un solo nodo, tardaba milisegundos
El put0 python de los cajones tarda .08 en subir 18 archivos
He probado usando SET y MSET, y da igual. Y usando pipelines, lo mismo. 32 segundos mas o menos para 100 keys
 
@gbianchi No si estás atento. Igual si hablamos de lo malo, creo que eso hace que Python ocupe más memoria y sea mas lento si no me equivoco.
@PabloLozano Ya vi eso en un modulo. Lo puedes decir pero no ocurre ningun error si el tipo es diferente
 
para mi el ":" en python es como una especie de go to(vba) no?
 
1:54 PM
Creo
@Trauma De los cajones, te luciste Trauma xD
@junior Que es el go to(vba)?
 
Negro. Me tiene negro
 
Pues, lamento que asi sea y suerte en hacerlo más rapido!
Que no se tarde 32 segundos!
 
Si es que creo que es problema de la libreria que estamos usando.
Y ya no me puedo poner a buscar, integrar, y probar otra
 
@DanteS es para saltarse lineas de codigo, GoTo(vba) en visual basic
 
@Trauma ufffff
 
2:00 PM
Y se supone que esta es la recomendada, la semi-oficial de Redis
 
@junior Ahhh entiendo. Yo no lo veo asi creo, pero bueno. Cada uno ve lo que quiere ver.
@Trauma Y aun así es lenta? vaya...
 
Creo que tiene algún problema con el pool de conexiones que mantiene con los servers
 
Ya veo, sea lo que sea. No te pares a explicarme por que de servidores no se nada xD
 
:-)
keep_alive = true, SET`, pipeling:
Start SET ...
End SET. Time: 32317ms
No hay cajones de que baje de ahí
:'-(
 
@Trauma yo tuve un problema con un pool de conexiones en Mongo, sé que esto es diferente, pero en mi caso la solución era la menos obvia, y sin embargo funcionó muy bien mi solución.
 
2:08 PM
@MauricioContreras Cuenta
 
El pool de conexiones lo maneja internamente Mongoose, por lo tanto, fiándome en lo que decía la docu, simplemente llamaba a la conexión que supuestamente Mongoose mantenia. Pero resultó ser que no sucedía eso, sino que creaba un nuevo pool a la base de datos, haciendo que cada petición sobrecargara todo.
La solución fue guardar una referencia al pool de conexiónes a la DB y así poder reutilizarlo sin que se generara uno nuevo.
Sólo se genera un pool si no existe previamente, o si se agota el máximo de conexiones del pool.
 
pero eso está mas abajo de mi API
carajo :'-(
 
@Trauma parece que si. XD
Sucede que Mongoose si mantiene un pool de forma práctica, pero sólo para una conexión default, y en mi caso, es un sistema multi tenencia.
Por lo cual creo que lo que dice la docu no aplica en mi caso.
 
2:55 PM
Alguien tiene una idea de como funciona redux con next js?
En los ejemplos que veo el store es creado tanto en el cliente como en el servidor y al final me confunde saber cual se usa al final? si el store se crea en el cliente sobreescribe el estado inicial que se estaba especificando en el servidor
 
3:12 PM
@Trauma no es la flecha, es el indio
@Trauma y local te funciona igual?
 
No hay local, todo a remoto
 
Vi una respuesta de un usuario y me di cuenta que estoy algo oxidado con las explicaciones. Nah, creo que solo me quedo algo de tinta en el tintero.
No me centré en explicar lo que hace el after unu
 
@Trauma y porque no usas HGETALL
generas una key general y despues subkeys
asi he trabajado yo y es la maravilla
con JSON asombrosamente gigantes
 
@JackNavaRow Lo se
@JackNavaRow PORQUE NO QUISIERON HACERLO ASí EN SU MOMENTO
Es lo que pasa al currar rodeado de ... ellos
 
@Trauma ¡bueno pero nu te enojes!
 
3:23 PM
no no, si no me enojo
:-)
 
pero nu conmigo
 
¿ Me he pasado con el remarque ?
 
estoy tratando de ver soluciones
 
no era mi intención
Te lo agradezco :-)
 
@Trauma tranquilo es broma, si te contara los chistes en donde estoy
 
3:24 PM
Ah, ok. Aquí no se apreciando los gestos :-)
ni las expresiones faciales
 
persona1: necesitamos resolver x scrumMaster: que me envie un correo y lo veo
a la chancha la agilidad del scrum master
y todos los dias me pasan chistes como esos o peores
 
jajajajajajajjaja
Ya lo entendi
 
@Trauma y le pegas directo al servicio o por medio de un MS?
servcio me refiero a REDIS
 
Directo
Si es tema de que, o no uso bien la librería, o dicha librería tiene un El Problema
 
REDIS para python?
 
3:31 PM
¿¿¡¡ Eiinnngggg !!??
C++
 
@Trauma hablo la libreria
 
17 secs ago, by Trauma
C++
;-p
 
si pero como dijistes python.. asumi que hicistes algo incomprendible
 
Los pythonistas están usando redis-py-cluster o algo así
y a ellos si les corre
 
bueno estas usando una que REDIS apoya....
 
3:34 PM
La escogimos en esa página precisamente por eso
 
@Trauma y si haces uin test de conexion al cluster?
 
Conecta bien
 
un archivo que guarde algo y cierre la conexion
 
pero es lentísima
 
@Trauma lenta en retornar la respuesta?
 
3:35 PM
claro, tengo mi cluster.cpp de pruebas
lenta en todo
solo puedo testear lo que tarda la lib en darme la respuesta, no se a nivel de socket
pero va a paso de burra
 
uhmm, y TU GUI de Redis
como se porta
redis commander o el que uses
desktop manager
intenta enviar a guardar algo por alli
o via redis-cli intenta enviar algo asi sales de duda si de verdad es la libreria o es el cluster
 
tengo una prueba en python
y va como un tiro
 
bueno..... y no puedes generar un archivo y mandae a ejecutar en python?
o implementas un mini MQ
 
no
tiene que ser con esa librería y en C++
 
bueno.. es un problema de tipo el problema
 
3:44 PM
Sip :-)
 
Buenas!
 
@Trauma Me cuentas qué es lo que estás haciendo? Hago de patito de goma, que tengo tiempo ahora :P
 
2 hours ago, by Trauma
El put0 python de los cajones tarda .08 en subir 18 archivos
¿en qué quedamos @Trauma? Te tarda mucho o te va como un tiro (disclaimer no he seguido el hilo)
 
@abulafia La versión con C++ necesita 32 segundos
así que no es problema del servidor, sino de su código + librería
deben hacer las cosas de manera distinta, porque ni siquiera dividiendo 32 entre los 18 archivos da (no es un tema sólo de paralelismo, entonces)
 
@LogicaMiau Buenas!
 
3:55 PM
@DanteS. ¿que onda Dante? ¿como andamos?
 
Un poco mal, trabado un poco con un problema del trabajo sobre como funciona el programa que estoy pasando a Python. Y vos?
 
Pues contrariamente todo bien, adentrándome en el mundo de JS ahora:)
 
01:00 - 16:0016:00 - 00:00

« first day (1999 days earlier)      last day (1092 days later) »