Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




wdaoajw

Luego los que usan git desde la terminal os entierran en dinero

Leos

Si, en mi contrato lo tenia, un plus de +20k si usaba git desde terminal

1
Wei-Yu

punto net punto net en su cole no hay rival punto net punto net nadie puede con ella

4
Kaledros

#35424 Vaaaale, ahora lo entiendo. Muchas gracias, era justo la explicación que necesitaba.

Y lo de git por consola: es como el cambio de marchas, que es básico saber manejarte con el manual pero cuando coges uno automático ya no quieres volver atrás.

PiradoIV

#35427 Las típicas herramientas gráficas de Git hacen cosas que no te esperas, en la terminal no hay lugar a dudas.

Edit: Si a ti te gusta, guay, disfrútalo xD

2 respuestas
Kaledros

#35435 Las herramientas gráficas te solucionan mucho la papeleta en casos de merges cabrones, cuando tienes que arreglar veintipico conflictos yendo clase por clase y mirando qué línea te quedas y cuál no. Por lo demás, es simplemente hacerlo con un click o con un comando.

2 respuestas
PiradoIV

#35436 Depende de lo que estés haciendo. Las características que te visualizan datos (annotate/blame), genial, pero a nada que tienes que hacer modificaciones, mantenimiento o cosas algo más avanzadas (stash, cherry-pick, reset, etc) es mucho más cómodo desde el terminal.

Pero vamos, usa lo que te vaya mejor en tu caso.

1
Lifecasi0

#35436 la cuestión está en que si se hacen commits atómicos (que es lo que se debería), seguido del correspondiente git pull, nunca te deberías encontrar en una situación en la que tengas que arreglar veintipico conflictos. Y como comenta el de arriba, para cosas avanzadas, el terminal es mucho más cómodo.

2 respuestas
eondev

#35426 una función asíncrona contiene un suspend/yield/lo que sea. También puede tener un return explícito o no, como una función (bueno, lo son). Puede ejecutarse en un thread a parte en caso de ser I/O o una operación cpu bound si necesita paralelismo o tirar de asincronia con un sheduler, sin necesidad que tirar del pool de threads.

No se es algo bastante simple, no hace falta divagar tanto poniendo ejemplos tontos XD

1 respuesta
Kaledros

#35438 Es sólo un ejemplo, pero si redefines el modelo de mensaje que se envía entre servicios a través de una capa de mensajería ya tienes, como mínimo, que modificar todas las signatures del servicio en el que has estado trabajando. Si se han añadido atributos nuevos es posible que ni te compile. Eso con consola se me hace complicado.

eondev

#35435 la de intellij es bastante limpia la implementación, y super intuitiva en plan sigue el mismo flujo de la consola. A mí me mola

1
desu
#35439eondev:

No se es algo bastante simple, no hace falta divagar tanto poniendo ejemplos tontos XD

como puedes ver todo el mundo ha respondido mal. incluso tu ahora. aunque la mayoria de gente tiene una intuicion bastante correcta, a nivel de implementacion no entienden como va. como he dicho arriba, la respuesta es funcion return, corutina suspende y resume... no hay mas.

en tu frase tu mismo te lias,

#35439eondev:

o una operación cpu bound si necesita paralelismo

para que quieres una funcino asincrona si es cpu bound? XD quieres una funcion normal... si no vas a suspender pa que queires una corutina? es estupido. lo de necesitar paralelismo no tiene ningun sentido lo que dices.

#35439eondev:

o tirar de asincronia con un sheduler, sin necesidad que tirar del pool de threads.

estas mezclando paralelismo con concurrencia. una funcion async en el main ya es concurrencia. el scheduler sobretodo es para gestionar el paralelismo.... el tema de pool de threads no tiene absolutamente nada que ver con la concurrencia o ser async o no... puedes tener un pool de kernel threads o un pool de user threads...

es una pregunta que me gusta mucho para entrevistas porque me gusta implementar el scheduler en pseudocodigo y hablar de la stack, del stackframe... cuando hice los chat en zig y en rust para paracticar, en zig hice el scheduler a mano, un for loop guarro en un thread nuevo. fin. facilisimo, maximo rendimiento y eficiencia. en rust en cambio necesitas con tokio definir el "scheduler". ya a;ades abstracciones que no controlas y no siempre necesitas..

a nivel de gestion de memoria es muy interesante el tema tambien, aunque es mas bien entender local threads que no async. es un tema que yo mismo me lio cuando hago rust. porque estoy acostumbrado al csp.

1 respuesta
Kartalon
#35438Lifecasi0:

commits atómicos

Ojalá, recientemente tuve que abroncar a un dev porque había metido en un commit relativamente sencillo más refactors que leyes random en las reformas de ley del parlamento. La gente aprovecha PRs que tienen que entrar asap para meter sus movidas aunque no vengan a cuento.

eondev
#35442desu:

para que quieres una funcino asincrona si es cpu bound

No he dicho eso, vuelve a leerlo. Estoy nombrando todos los casos en los que necesitas X cosas y de qué se compone.

Edit, no he dicho nada, no sabes leer xD

1 respuesta
desu

#35444 No lo entiendo la verdad.

Yo entiendo que has dicho esto:

Una funcion asincrona...

Puede ejecutarse en un thread a parte en caso de ser I/O
o (puede ser) una operación cpu bound si necesita paralelismo
o (puede) tirar de asincronia con un sheduler, sin necesidad que tirar del pool de threads.

Tampoco entiendo tu respuesta.

Si quieres clarificar clarifica, me da igual si lo sabes o no. Ya lo he explicado antes XD

edit: estoy convencido que nadie ha entendido tu frase de mierda

dudo que sepas lo que sea una funcion async la verdad, incluso despues de leer mi explicacion.

otro tema es el del scheduler, preemptive, nonpreemptive, colaborativo ... dudo que la gente sepa como funciona al toque XD por aqui hay gente 10 a;os haciendo async/await y no lo saben.

1 respuesta
eondev

#35445 qué va quita esa frase primero y dejalo todo como las X cosas que utilizas para cada caso.

A ver si así:

Tienes las funciones asíncronas, que contiene un suspend/yield/lo que sea. Éstas también pueden tener un return explícito o no, como una función (bueno, lo que son).
Puedes ejecutar en un thread si lo que necesitas es paralelismo para casos como I/O o una operación cpu bound.

También tienes la asincronia en un mismo thread (event-loop)

Me he fumado un pepo, estoy tirado en la cama, no te enfades xddd

PaCoX

ctrl+f state machine -> 0 results --respect

1
JuAn4k4

#35426 Si, se puede ejecutar en el mismo thread, de hecho también lo puse, también una fn sync se puede ejecutar en otro thread, si. En realidad vine a decir que casi son lo mismo, que toda la parte de stack punteros y tal es igual que ejecutar una función, la diferencia está en si bloqueas o si suspendes (sales del cpu).

Aunque generalmente, la corutinas se ejecutan en otro thread y las llamadas a funciones en el mismo thread, pero no tiene por qué ser así, ya que no tiene nada que ver una cosa con la otra (threads y async) aunque un poquito si.

Sin embargo con suspend hablas en realidad de blocking/non-blocking, ya que sync significa que una cosa va detrás de la otra y async que una cosa no tiene que esperar a la otra.

2 1 respuesta
PiradoIV

En menudos jardines os metéis xD

3 1 respuesta
Fyn4r

#35449 Bien tirao lo de los jardines

6
PiradoIV

Tienes toque leyendo entre lineas xD

1
desu

#35448 no tiene nada que ver aunque un poquit si XDDD

blocking/non blocking => return o await async para bloquear. una funcion normal el caller siempre espera el return, una funcion async el caller solo esperara el resultado si haces el wait. no tiene nada que ver el suspend ahi para bloquear o no bloquear. es el await lo que importa. porque esperar o no es el caller quien decide.

sync significa que una cosa va detras de otra? no tiene porque. una cosa va detras de la otra porque escribimos los runtime asi, pero yo puedo ejecutar si quiero las cosas en orden aleatorio XD imaginate un main donde cada linea la ejecuto en orden aleatorio. por poder puedo... es sync porque las cosas empiezan y termian y popean el stackframe... por eso son funciones sync. de hecho en un scheduler de corutinas muchas cosas son round robin o random...

async signfiica que una cosa NO tiene que esperar a la otra? no tiene porque. puedes tener codigo async y hacer un await. refutado. la funcion sigue siendo async pero ahora tiene que esperar a otra.

async significa que vas a suspender. fin.

podeis seguir tirandolas, soy muhammad ali

el vocabulario de sync y async ya me parece mal. no se de donde viene. prefiero rutina y corutina. "co" rutina, de "cooperativa". es una rutina cooperativa porque devuelve la ejecucion (suspend).

si el scheduler puede parar la ejecucion desde fuera y dar la CPU a otro seria una rutina preemptiva. si algo de mayor prioridad entra, lo mete.

si no es preemptiva, el scheduler tiene que esperar a que termina la rutina. y mete lo de mayor prioridad.

pero si es una rutina cooperativa, la corutina puede hacer un suspend y devolver el control. por eso se le llama "cooperativa". porque permite que sea preemptiva al scheduler sin que el scheduler la lie. preemptive cooperative scheduling.

1 respuesta
JuAn4k4

#35452 Para mi sincrono tiene ese significado más allá de async/await, porque tienes que esperar el resultado, no por que puedas suspenderte y esperar fuera o dentro de la cpu (bloqueante/no bloqueante), aunque luego tú función que hace A>B>C de forma sincrona, pueda ser en si misma async y/o no bloqueante. Incluso que A, B y C puedan ejecutarse asíncronamente en otra fn y ser no bloqueantes. Para mi el problema viene de que los términos se han ido intercambiando y se usa sync y async/await para decir bloqueante/no bloqueante, ya que todos los lenguajes que han implementado el non-blocking con las keywords async/await pero la palabra tiene significado propio y es que tengas que esperar y sincronizarte. Pero si, no te he quitado la razón ni ha sido un ataque ni nada. Además te dije que si que metí l gamba vaya metiendo los threads en medio ya que en el fondo lo que ocurre es que te sacan del thread en el que estás para esperar pero claro siempre puedes volver al mismo, a otra cpu, a la misma o te pueden mandar al thread de dev de mv y ejecutarse aquí.

También te digo yo la teoría la deje de lado hace mucho a mi lo que me gusta es refactorizar código al toque

aren-pulid0

Que nivelazo tenéis, que envidia

PaCoX

1- programación asíncrona != multi hilo, aunk multihilo sea una forma de programación asíncrona puedes tener tareas asincronas en un solo hilo.
2- async no esta directamente relacionado con concurrencia o paralelismo, solo estas definiendo que la tarea será asíncrona, lo que tu hagas luego es cosa tuya, como si quieres ejecutar las tareas declaradas como async de forma sincrona.
3- async es un declarante, si yo hago un lenguaje que al poner async te dibuje en pantalla una polla con alas pues te la vas a comer.

B

Bueno, pues ya es viernes ¿sobre qué debatimos hoy? ¿tema sueldos?

PaCoX

venga va. Que preferis, un aumento de 10% en un nuevo trabajo o quedaros en el actual con una contraoferta similar y promesas de brotes verdes?

2 respuestas
B
#35457PaCoX:

promesas de brotes verdes

esto sin duda, somos jardineros al final del día

8
Wei-Yu

por un 10% me espero a la revisión que me lo suben ez por ser un crack

Leos

#35457 Depende la otra oferta llega porque yo estaba buscando? Si ya estaba buscando es que no estaba tan bien en mi actual trabajo y cambiaria, si no seria engañarme a mi mismo por quedarme en la zona de confort