Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Dr_Manhattan

#61649 la ex de Piqué

PhDfailer

Mi flujo actual con IA. Lo comparto para ver si véis mejoras.

Ahora mismo lo que me limita mucho es que O1 está bastante capado (50 mensajes / semana) en el Plus de 20$/mes

-> Diseño a alto nivel (1 sola feature)
-> Brain storming con Chat GPT - Modelo O1 de la implementación , le cuento mis ideas, como encajan con la arquitectura de la aplicación, que me haga propuestas alternativas, etc. Este desde mi punto de vista es la parte menos automatizable aún.
-> Elaborar un .md usando O1 - 4o con el plan de implementación anterior
-> Elaborar un .txt con todo el contexto de código (tengo un script de bash custom para esto, pero ya hay muchas herramientas similares)
-> Alimentar cursor con ese .md y el .txt. Modelo Claude Sonnet 3.5.
-> Revisar output de cursor e implementar.
-> Refactorizar y ver si encaja con la arquitectura anterior. Para esto uso el Control + K de cursor.

Claves: utilizar lenguajes poco verboose, tener claro que lo que suelte cursor no es codigo mantenible el 90% de las veces y toca refactorizar, no confiar en los planes de cursor, en eso va por detras de GPT 01.

Cosas que noto: aumenta bastante la productividad (diria que vas al menos x3-x5 más rápido que si lo picas tu todo a mano), a nada que te despistas, te hace código inmantenible por humanos, por lo que es peligroso, baja bastante la sensación de satisfacción con lo que estás haciendo.
Si no revisaras nada podrías ir facilmente x10-x20 veces más rápido, pero suerte para hacer una arquitectura mantenible e implementar nuevas funcionalidades luego.

desu

Hay que tener cojones para publicar estas cosas

6
Wei-Yu

o sea que no exploras el problem space y el solution space se lo dejas a chat yipiti

habría que ver cómo navegas el dominio si writing is thinking y el writing lo hace un llm

1 respuesta
PhDfailer

#61654 ?

1 respuesta
Dr_Manhattan

#61655 que pasa? Que no entiendes al vegano cuando habla? No te preocupes, eres normal

2
PhDfailer

GaN2

#61646 buena generación de subnormales se viene gestando raíz de las LLM…

1 respuesta
desu

#61658 hoy miraba rams.

sabes la tipica pregunta de system design, diseña una pipe line, o un sistema que haga blah blah con archivos grandes...

y tu preguntas? Como de grandes? Te dicen muuuy grandes, en plan 200 GiB, 300GiB...

a ver... eso me cabe en RAM

pues imagínate que no te cabe...

PUES COMPRO MAS RAM
https://downloadmoreram.com
https://downloadmoreram.com
https://downloadmoreram.com

de hecho para que lo sepais todos, 1TiB de RAM = 5k usd


https://www.amazon.com/4x256GB-DDR4-3200-PC4-25600-Registered-Workstations/dp/B08F2VBK2S?th=1

cuanto cobra un ingeniero? un equipo de ingenieros? cuanto cuesta montar una pipeline con por ejemplo: kafka/rabbit/spark que dumpee los datos a un S3, haga sharding y blah blah...

por 50k tengo 10 maquinas de 1tb procesandote lo que quieras en paralelo, chunk upload y si puedes procesar en stream por el formato del archivo ya has triunfado.

vamos, que el CLOUD esta muertísimo

PS: sin entrar en que cargar de un SSD hoy es una locura de rapido también jaja, que podrias guardar en SSD sin saturar el NIC xq desde el user no da

1 respuesta
Fyn4r

vamos, que el CLOUD esta muertísimo

Eso dijo Sephiroth y aquí seguimos

8
Dr_Manhattan

Estre eso y el nuevo snapdragon x elite vuelve la época de tener el hierro en casa

Lecherito

A ver, hoy en día el cloud es usar lambda y mierdas de esas para no tener que gestionar nada, si necesitas computación entonces si pillas algo del estilo.

uint8_t

La programación funcional es un completo desperdicio de tiempo. Los conceptos como la inmutabilidad y la recursión no solo hacen que el código sea más difícil de leer y entender, sino que también resultan en un rendimiento lamentable en comparación con la programación imperativa. Además, la obsesión con la pureza de las funciones lleva a un código que es extremadamente verboso y, en la práctica, nadie quiere mantener un código tan complicado. En el mundo real, donde la eficiencia y la claridad importan, la programación orientada a objetos supera a la programación funcional en todos los aspectos.

2 respuestas
GaN2

vamos, que el CLOUD esta muertísimo

Tan muertísimo que vamos marcando récord de beneficios quarter tras quarter y lista de espera para múltiples tipos de instancias y productos

1 respuesta
HeXaN

#61664 Pero es que Oxide esto, Oxide lo otro.

1
Dr_Manhattan

#61663 jajajajajajajajajajaja pero de dónde has salido tú?

Menos mal que SQL es imperativo, si no, tendría mal rendimiento y sería menos legible

Espero que sea por lo de los inocentes y eso

1 respuesta
spidermanman

#61663 todo bien, pero con la pureza no te metas, mira como tenemos el país desde que dejamos entrar chinos

Kaledros
#61659desu:

cargar de un SSD hoy es una locura de rapido también

Ayer estaba explicándole cosas sobre memoria al chaval este sobrino de un colega que me pregunta a veces dudas. Me pasó sus apuntes para ver por dónde iba y qué le habían explicado y veo que siguen con lo de que la RAM es más rápida que la lectura desde disco y le contaba que eso hace años que ya no es así. Ya no tiene demasiado sentido cachear cosas en memoria si acceder a ellas en disco tiene un coste de tiempo similar.

2 respuestas
uint8_t

#61666 En realidad, SQL no es imperativo, sino declarativo.

1 respuesta
Dr_Manhattan

#61669 y sabías que los lenguajes funcionales son declarativos?

Como veo que te pierdes, te aclaro que lo de que sql era imperativo era ironía

1 respuesta
desu
#61668Kaledros:

veo que siguen con lo de que la RAM es más rápida que la lectura desde disco y le contaba que eso hace años que ya no es así. Ya no tiene demasiado sentido cachear cosas en memoria si acceder a ellas en disco tiene un coste de tiempo similar.

no se si es una inocentada

o una fpeada habitual tuya

2
GaN2

#61668

Te acabas de tirar un triple que ni los de Curry macho

1 respuesta
Kaledros

#61672 Ah, no sé, me lo ha dicho ChatGPT, ¿estáis diciendo que se equivoca?

desu

en una entrevista de hecho me preguntaron de hacer unos calculos y los ciclos eran de 400ms, desde que te llegan los datos, tienes 400ms para tomar una decision, mandar y leer de nuevo.

yo le digo, 400ms? en 400ms me hago un cafe jajaja y el tio se queda con cara, wtf? 400ms? dos roundtrips transatlánticos cabron jaja

en trading por ejemplo, se mide el tiempo de core to core, que unos cores hacen calculos, IO en network, pues calcular el algoritmo de trading, suelen tardar unos 40 nano segundos, depende del fabricante, osea que en 400 ms, me da tiempo a hacer 100 tradings en tiempo real

uint8_t

#61670 La ironía, un mecanismo interesante, aunque en este contexto no hace más que subrayar las falacias de tu argumento. Sí, los lenguajes funcionales son declarativos, pero eso no mitiga sus limitaciones prácticas. La inmutabilidad, aunque conceptualmente pura, introduce sobrecarga en la gestión de la memoria, especialmente en sistemas de gran escala, donde la creación de nuevos objetos para cada estado intermedio puede ser prohibitiva en términos de rendimiento y escalabilidad. La recursividad, alabada en teoría, puede llevar a un consumo exponencial de la pila de llamadas, un problema que los enfoques imperativos evitan mediante iteraciones controladas. La composición funcional, mientras que promueve la modularidad, a menudo resulta en una abstracción tan profunda que la legibilidad y mantenimiento del código se ven comprometidos. Herramientas como el profiling y la depuración se vuelven laberínticas en un entorno donde cada función puede ser anónima o parcialmente aplicada. Finalmente, la optimización del compilador para código funcional, aunque avanzada, no siempre logra superar las optimizaciones a las que un desarrollador puede someter un código imperativo bien escrito. Así que, si crees que la declaratividad y la pureza funcional son inherentemente superiores, es necesario reconsiderar las implicaciones prácticas y técnicas de tales afirmaciones en contextos reales de desarrollo

1 respuesta
Dr_Manhattan

#61675 no parece que sepas mucho de lo que hablas, los lenguajes funcionales modernos tienen tail recursion (de colas tienes que saber, si no le preguntas al vegano), además de garbage collectors mejorados.

Sobre la inmutabilidad, mírate algo de Clojure que usa por ejemplo Scala y Spark.

Te iba a contar más sobre la optimización en la compilación de los lenguajes funcionales que se usan hoy día como Scala o Haskell pero es que veo que podrías pefectamente perder una discusión contigo mismo.

De depuradores etc, mira de usar un IDE de verdad

AVISO QUE ME DESBAITEO A PARTIR DE AQUÍ, NO ME PAGAN POR SACAR A NADIE DE LA INDIGENCIA MENTAL, ADEMÁS, NADIE ME ASEGURA DE QUE NO ESTOY DISCUTIENDO CON CHAT GPT

1 respuesta
uint8_t

#61676 Parece que te aferras a los argumentos de manual sin entender el contexto práctico. La recursión de cola, aunque útil, no es una panacea... muchos compiladores no optimizan automáticamente para ella, y en contextos donde se necesita eficiencia máxima, el control manual de la pila es superior. En cuanto a los "garbage collectors" mejorados, sí, han avanzado, pero el overhead de gestión de memoria en sistemas de gran escala sigue siendo un punto crítico, especialmente con la inmutabilidad que provoca la creación constante de nuevos objetos.

Sobre Clojure, Scala y Spark, asumir que su uso de la inmutabilidad resuelve todos los problemas es simplista. Clojure, por ejemplo, usa estructuras de datos persistentes, pero eso no elmina la necesidad de entender el impacto en la memoria y el rendimiento. Scala y Spark son híbridos, que en muchos casos utilizan mutabilidad para lograr eficiencia en ciertas operaciones.

Por último, la optimización en la compilación de lenguajes funcionales como Scala o Haskell es impresionante, pero no es mágica. Las optimizaciones automáticas tienen límites, y en escenarios donde cada milisegundo cuenta, un programador con un enfoque imperativo puede optimizar manualmente de maneras que los compiladores funcionales no siempre pueden replicar. Así que, si crees que puedo perder una discusión conmigo mismo, al menos lo haría con una comprensión más matizada de los desafíos reales en la programación, sin depender de chistacos sobre colas.

2 respuestas
desu

es como ver a dos niños en el patio del recreo pelearse para ver quien se puede comer el palo que han encontrado en el suelo

Dr_Manhattan

#61677 las estructuras de datos persistentes de clojure usan arrays dispersos con complejidad prácticamente de O(1), así que simplista lo justo.

Para sistemas embebidos donde te importa tanto el rendimiento mejor tirar por ensamblador directamente (imperativo sí) pero si usases python, java, c# etc tendrías exactamente los mismos problemas de rendimiento que con uno funcional

Qué es para ti un sistema a gran escala? Whatsapp por ejemplo podría valerte? pues usa Erlang, que es un lenguaje funcional puro y no híbrido

Dr_Manhattan
#61677uint8_t:

inmutabilidad que provoca la creación constante de nuevos objetos

Sobre esto, solo he tenido problemas relacionados con procesamiento en tiempo real, ya que son procesos que no terminan nuca, pero conociendo el problema, puedes evitarlo. La mayoría de problemas que comentas son cosas del mecánico y no del martillo

1 respuesta