Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




Ranthas

#22980 Nunca subestimas la capacidad de un pato para picar teclas y chuscos de pan

1 respuesta
r2d2rigo

Se huele el drop a la semana desde aqui.

vivora

#22980 Igual de aquí unos años le echo un ojo. Por ahora, ya tuve bastante con C en primero de carrera y con ensamblador más adelante, no me apetece nada volver a ese nivel...

1 respuesta
Fyn4r

#22981 lo jodido es que programe todos los chorri algoritmos metaheuristicos cuantos hay. Estaría orgulloso si no fuesen todos lo mismo, tirar los dados y rezar para llegar a una solución que no de vergüenza xd

2 1 respuesta
desu

#22984 hare uno completo, tabu y QUIZAS late acceptance. el resto solo son variaciones y no importan.

el problema es que estuve googleando haber si habia alguna libreria para hacerlo en rust o cpp y no hay ninguna buena. son todo mierda. asique queria hacerlo yo para tirar un benchmark y ver el rendimiento.

lo que mas palo da es tener que hacer las funciones de coste incrementales y tal.

lo bueno de ser rust es poder hacer moves de memoria directos y tener mucho control de las copias y clonados... muchos motores como optaplanner internamente estan mal hechos en esto y no permiten debug o cosas complejas a nivel de steps/ir atras/re hacer solucoines a partir de X punto (checkpoints de ML).

#22983 man lo bonito de C y asamblador es que como mas aprenderes a programar mas lo entiendes. es pura belleza trabajar directamente con la memoria (a traves de llamadas a sistema).

frekaice

Veo que habéis comentado arquitectura hexagonal + DDD, a ver si os animáis un día en dar una clase en Twitch o recomendar literatura sobre el tema, que estoy empezando a leer sobre ello y cada vez me gusta más, aunque me cuesta materializarlo en forma de código.

2 respuestas
B

Hola gente, para una práctica de clase tengo que usar el algoritmo ID3 para predecir tumores, lo tengo montado, pero por defecto el árbol me pilla como nodo raíz un atributo y ok, pero me gustaría saber por qué me pilla ese atributo en concreto, esto es un mapa que me he hecho del dataset para que lo veáis mejor

El de rojo es el que me pilla como nodo raíz

2 respuestas
Naith

#22987 es por entropía. Yo estas mierdas tenía que hacerlas a mano. Así te enterabas si o si de como se hacía. Edit: mejor la wikipedia en ingles que en español casi me da un algo. https://en.wikipedia.org/wiki/ID3_algorithm

1 respuesta
Wei-Yu

prueba con

alias id3=bubblesort; cat file.csv | id3

5 1 respuesta
B

#22989 jajajjaja pobre chaval de wget

#22988 voy a mirar eso, gracias

Edit: #22988 justo lo que estaba buscando gracias

eondev

#22986 olvidate, ddd solo lleva a la sobreingieneria

2 2 respuestas
desu

#22987 hijo de puta como lo tienes implementado si ni sabes lo que hace?

Te da ese resultado por como funciona el algoritmo, te lo han explicado arriba.

Y te da el mismo resultado siempre porque es greedy.

Una manera de mejorar el algoritmo es pensarlo de esta manera. Greedy explora 1 nivel y se queda con lo mejor. Que pasaria si explorases 2 niveles de profundidad antes de tomar la decision? Que pasaria si explorases 3 niveles de profunidad? Es decir, miraria la entropia una vez explorados N niveles antes de quedarme con un nodo com padre y volver a seguir el algoritmo.

Vuelve a picar tu codigo pasando este nivel de exploracion por parametro y pruebale a meterle mas profundidad, te daran mejores arboles de decision.

Ten cuidado porque es un problema de combinatoria y crece exponencialmente.

Como puedes ver, no cuesta mucho mejorar la "inteligencia artificial" que hacían los abuelos.

Ah. si en lugar de hacer siempre el mejor (da igual cuantos niveles) le metes una probabilidad de random, acabas de descubrir la exploracion aleatoria y ya casi estas en el estado del arte actual. HAHAHAHAHAHAH

Venga ya que estoy te doy lo guinda del paste, si tiras algoritmos por encima de estos arboles de decision para ver que % de random y que nivel de exploracion necesitas para cada tipologia de arbol estas en el a;o 2020 publicando papers de NN sobre optimizacion y busquedas HAHAHAHAHAHHA CAMPO MUERTO. AI = HUMO PARA PAJEETS.

#22986 Tal cual dice #22991

"Like many things that have the potential to make you feel clever, e.g. machine learning, functional programming, DDD can easily be overused / used for the wrong reasons, at least if it's not mastered to a certain level.

When I first learned about DDD in 2008 or so, I was so proud of myself that each and every service was DDDified, which really put a huge mental burden on me and my team. It is not only that you have to think really deeply about your domain (which is usually a good thing) but you often come to a point where doing things the DDD way means a lot more work, e.g. creating Anti-Corruption Layers between bounded contexts. I spent so much time researching if I do things correctly and if the acknowledged prophets consider a design decision acceptable that coding started to hurt.

At some point however - and I think this what happens whenever you master something sufficiently - the penny dropped that the subtitle of the Eric Evans book "Tackling complexity in the heart of the software" really meant something: that DDD was a method for building complex software. The book itself - if you read it carefully as I did many years later - says explicitly that you should not use DDD for most parts of your system but only complex "core domains".

Nowadays, I am designing most services as "Transaction Scripts" again. Without feeling guilty. "

1 3 respuestas
B

#22992 te cuengo cuál es mi modo de trabajar en todas las asignaturas que puedo, me explico en este caso de la práctica de ID3:

Tengo que hacerlo en weka, que es una herramienta que tiene más años que Letto. Lo que he hecho ha sido hacer limpieza con pandas etc porque pasaba de editar un txt a mano.

En weka metes el dataset, le dices el aitrubuto objetivo que quieres predecir y el porcentaje de saparación de train/test, le dices qué algoritmo quieres usar y te saca un log en txt con los resultados. La práctica consiste en hacer eso y comentar los resultados.

Lo que yo hago siempre es hacer y entregar la práctica por temas de tiempos ya que tengo más asignaturas, y una vez hecho eso me pico el algoritmo al toque en python, así consigo entenderlo. La semana pasada me estuve picando dos de búsqueda no informada y me ayudaron muchísimo a entender como funcionan.

Ese es el tema

frekaice

#22991 En la empresa se están planteando ir hacia aquí, y en mi caso me lo conozco de oídas por eso quiero estar al día.

Hasta el momento esa sobreingenieria que se hace es para desacoplar las capas y no tener una database-centric application (la idea no me parece mal), pero es cierto que empiezan a aparecer muchas interficies por todos lados con la historia del SOLID y me da respeto que microservicios pequeños que nunca van a evolucionar se conviertan en mastodontes por el "quizá algún día es necesario cambiar la base de datos"

#22992 Muchas gracias por la cita, leyéndola veo que sería el caso que quieren hacer en la empresa, y por lo tanto, un bad pattern para servicios pequeños y nada complejos. Me apunto el libro "Tackling complexity in the heart of the software" :)

1 respuesta
desu

#22994 no perderia mucho el tiempo, es un texto basado en un post de martin fowlers del 2004? y hoy en dia esta bastante deprecated. yo cuando hablo de ddd me refiero a cosas completamente distintas por desgracia.. hasta hace bien poco no me habia dado cuenta que los pajeets han corrompido el termino.

tan solo es una alternativa a la OOP para modelar el knowledge y esto hoy en dia, cualquiera que no sea un pajeet sabe que esta mal....... pero a la gente le encanta re hacer el java enterprise de finales de 90 pricnipios del 00 y perder el tiempo en boberias. por eso hacen OOP, por eso hacen DDD de este, por eso hacen event driven design y mil historias.

no tienen problemas reales que resolver y se los inventan. luego se masturban con sus propias abstracciones que no le importan a nadie y solo aportan complejidad y hacen la solución mas dificulta de mantener y mas lenta.

El otro dia di una master class sobre este tema y arquitectura hexagonal y los alumnos no lo entendieron. Y mira que saque el paint... Pero nada, no entienden lo que es sobre enginieria, abstracciones inutiles y complejidad que no aporta. no han visto colas de kafka que tardan 3s desde que les llegan los datos hasta que se persisten en db... no lo han visto : - )

arquitectura hexagonal si te recomiendo, thinking forth (1985) me encanto, pero literatura moderna esta bastante bien y mantienen mejor los principios. Al menos de momento.... Pero de nuevo, hasta esto los pajeets lo han corrompido y ahora parece que la arquitectura hexagonal significa que tienes que modelar tu codigo de una manera concreta y crear una estructura de archivos concreta... Si no creas las carpetas no es hexagonal... si tienes las carpetas aunque sea un monton de mierda es hexagona... XD de nuevo gente que trabaja en carnicas o empresas paco que no tienen problemas reales y se inventan polladas de "ingenieria de software" que luego no las aplica nadie que tenga problemas reales que resolver.

te comparto las referencias que yo recomiendo, hasta que no escriba yo sobre el tema, recomiendo a este tio. su pensamiento es bastante comun entre la gente no-pajeet.
https://dpc.pw/opportunistic-programming
https://dpc.pw/how-i-structure-my-apps-in-rust-and-other-languages

El tema de representacion de conocimiento y como ha jodido la ingenieria es para estudiarlo. La OOP y las carnicas de finales de 90 y principios de 00, junto a los planes universitarios que salieron a principios de siglo ... madre mia que monton de porqueria. El software antes del 90 ni de co;a era asi. que te lo diga el @abuelo.

antes la gente resolvia un problema con un ordenador para que fuera rapido y funcionase bien, te modelaba los datos para que todo funcionase con lo necesario.

ahora la gente te modela el mundo real con OOP o DDD y te representa el dominio super bonito para que tus programadores hagan abstracciones. se les ha olvidado a los ingenieros que al final todo son 0 y 1s y que tenian que resolver problemas de manera eficiente... pajeets.

1 1 respuesta
isvidal

domain driven design + event driven design = easy life

_Rpv

Uso ddd en la empresa con .net, y no lo veo tan mal para algunos proyectos y si de verdad intercambias alguna capa.
Para otras cosas es complicar el proyecto

1 1 respuesta
desu

#22997 habra que ver que representa ese ddd. pero ya te digo que ddd va de la mano de data oriented.

si tu en tu negocio vendes coches y por ese motivo tienes una entidad coche. no has entendido ddd.

es el mismo error que hacen los pajeets en el dise;o de entidades para persistir en tablas relacionales.

como en el mundo real un coche lo pueden vender, tienen la tabla coche y luego otra de ventas con la fecha y el foreign id. esto te lo ense;an en la universidad... esta mal. no han tirado una query ni analizado datos en produccion en su puta vida.

y viene de que no tienen casos de uso reales ni un negocio real que les ponga requerimientos. estos problemas de juguete luego los aplicas al mundo real y solo escribes boberia. pero bueno, cuando tu negocio es vender libros que quieres hacer? es lo que hay xico.

yo siempre he dicho que lo hago y tal, pero dada la confusion que existe, procedo a decir que no lo hago y es una mierda. XD prefiero ser precavido.

ah premio para los anormales que el mismo DTO que reciben por un webservice lo usan en negocio y lo persisten en db. premio. en este hilo tenemos minimo 4 que yo sepa.

por cierto el tema de las carpetas me tiltea mucho porque no saben lo que es un puto modulo ni como se compila un proyecto o que cojones están haciendo en sus lenguajes de mierda. el código se separa en carpetas dependiendo de como funcione tu lenguaje y tu compilador no hay mas.

1 respuesta
frekaice
#22995desu:

no tienen problemas reales que resolver y se los inventan. luego se masturban con sus propias abstracciones que no le importan a nadie y solo aportan complejidad y hacen la solución mas dificulta de mantener y mas lenta.

Esta sensación si que la he vivido por desgracia, ver overengineering con factories, abstracciones, builders, servicios genericos para acabar haciendo una request simple a mysql

2 1 respuesta
desu

#22999 Todo esto es psicológico.

Por un lado esta el chuparnos las pollas. Todos queremos ser los mejores. Mas listos que nadie.

Por el otro lado esta lo que yo llamo "la formula secreta". Todo el mundo quiere "la formula secreta" para hacer X. Te apuntas al gimnasio, que "dieta" y que "rutina" tienes que hacer para ponerte como dios en 1 a;o? Programas? que "patrones" y que "arquitecturas" tienes que hacer para ser dios, el codigo mas rapido y el mejor ingeniero del mundo? Quieres ser tu propio jefe? Has oido hablar de las criptomonedas? solo tienes que invertir y ganar dinero facil. Sin esfuerzo.

Asi con todo, maquillaje, ligar, ropa y estilo... El ser humano se pasa la vida buscando la formula facil para lograr lo que que quiere, al mejor nivel del mundo y sin esforzarse. Y la vida no funciona asi. Yo mismo el otro dia hice stream e hice un churraco. Que esperaba la gente? auronplay que lleva 10 a;os y que entretiene hasta a tu abuela? si ya lo sabia y ni lo configure.

Mientras haya tontos comprando libros a la gente que les vende formulas, habra vende humos haciendo caja.

Pero bueno, si estas al tanto de que todo esto es cuento y mierda. Es que estas en el buen camino. No pasa nada porque leas el material o lo apliques, de nuevo, no hay formula magica, si no lo aplicas no aprenderas porque es una mierda. Yo estuve a;os haciendo patrones y aprendiendo sobre dise;o para entender que no valen para nada y no sabia ni lo que era un puntero ni que bytecode generaba el compilador..

1
JuAn4k4

DDD con CRUD commands&events.

1 respuesta
Millonet1

#22992

Como puedes ver, no cuesta mucho mejorar la "inteligencia artificial" que hacían los abuelos.

Ah. si en lugar de hacer siempre el mejor (da igual cuantos niveles) le metes una probabilidad de random, acabas de descubrir la exploracion aleatoria y ya casi estas en el estado del arte actual. HAHAHAHAHAHAH

Venga ya que estoy te doy lo guinda del paste, si tiras algoritmos por encima de estos arboles de decision para ver que % de random y que nivel de exploracion necesitas para cada tipologia de arbol estas en el a;o 2020 publicando papers de NN sobre optimizacion y busquedas

Te ha faltado "our algorithm provides state-of-the-art accuracy in x,y,z cherry picked artificial data sets" y a viajar por congresos.

3
desu

#23001 ayy

xq commands&events?

los commands&events como los lanzas y gestionas a bajo nivel? tcp, rpc, recoveries, latencias..

y como se que me vas a responder, por que no usar actores o actores virtuales (erlang/akka/orleans)? xq lo descartaste?

venga dew.

hoy estoy muy rantoso, es porque no he trabajado y no me he puesto a insultar a dinosaurios? puede ser.

2 respuestas
aren-pulid0

ayudame a picar la web asi se te pasa

vivora

#23003 tendrias que empezar a añadir un glosario de terminos a tus posts, asi no hay quien se entere nada... En el blog espero que tengas glosario.

_Rpv

#22998 por eso lo de "si de verdad intercambias alguna capa"
la realidad está en que luego no se cambia ninguna capa, no se reutiliza nada (se hace todo de cero de nuevo), no solo hay CocheEntitity, también el CocheDTO, CocheRepository, y como no, CocheController.

A mi estás cosas son las que más me chirrían en el curro

1 respuesta
isvidal

En el campo todo es mas sencillo

Ranthas

En el campo tienes un TractorEntity, TractorDTO, TractorRepository y como no, TractorController

MisKo

Y un TractoDigestivo

2
Lifecasi0

#23006 Te olvidas de CocheIService, CocheService, CocheIDao y CocheDao.