Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




JuAn4k4

#33438 Si, pero me pagan por 8h y rindo como 16h

1 1 respuesta
B

#33451 pues entonces deberían pagarte por 16

1 respuesta
JuAn4k4

#33452 Eso solo se puede hacer siendo autónomo

desu

#33449 Te das cuenta del autentico privilegio que es tener la oportunidad de hablar conmigo?

Algun dia les contaras a tus hijos que me has conocido.

Nuevo blog post:

postmortem oop

que opinais de este estilo tan agresivo? simple, directo. notas referenciando a gente que sabe mucho del tema y poco mas.

tengo otro parecido sobre data oriented design pero en lugar de decir "tu eres tonto" el blog post se llama "why i suck" y todo lo digo sobre el punto de vista.

COMO HE PODIDO SER TAN ESTUPIDO DE NO SABER ESTO?

en lugar de decir

COMO PUEDES SER TAN SUBNORMAL PEDAZO DE MEIRDA?

asique si alguien me puede dar su opinion... luego lo re escribo haciendolo del reves y me decis si se lee mejor.

eXtreM3

Cómo demonios se agrupa en regex para que devuelva todas las ocurrencias? Quiero obtener todo lo que matchee con 4 dígitos espacio 4 dígitos

tengo esto /[0-9]{4}\s[0-9]{4}/g pero sólo encuentra el primero si le paso este texto

BXT1695 2401 2025WKN

Debería matchear 2: 1695 2401 y 2401 2025

https://regex101.com/r/3Q66kJ/1

2 respuestas
desu

#33455 haz un split y luego mira las parejas

es un hotpath? cuanto tarda haciendolo "mal"?

premature optimization is the root of all evil

no tengo ni puta idea tampoco, lo haria mal, si son esas tus string dudo que tarde mas de 1ms

1 respuesta
eXtreM3

#33456 no puedo -debo- hacer eso, el texto es desconocido.

Tiene que ser una tontería de colocar algún paréntesis o corchete en el sitio correcto, pero no he dado con la tecla.

1 respuesta
Kaledros

Joder, parece un problema del Advent of Code. Desu tiene razón, split por espacio vacío y ve comprobando el final de un string con el principio del siguiente.

desu

#33457 muy desconocido no es si sabes la regex

mira regex recursiva (?R) algo asi

S

(?=([0-9]{4}\s[0-9]{4})) funciona?
https://regex101.com/r/oRvxa3/1

2 2 respuestas
Lecherito

Sep, yo tenia pensado algo del estilo de #33460

Pero como explicacion, #33455 es que las regex consumen los tokens con los que hacen match, pero hay algunos constructores (como los lookahead que te han puesto), que no consumen. Asi que cuando quieres ver algo pero no consumirlo necesitas uno de esos constructos para poder hacer lo que necesitas.

Tu regex solo necesitas a;adirle un lookahead al \s\d{4} y ya te funcionaria

2 1 respuesta
eXtreM3

#33460 #33461 de lujo tíos :), había probado con ?: pero no daba el resultado esperado.

Gracias :D

1 respuesta
Lecherito

#33462 Es que eso es un non capturing group, basicamente lo unico que haces es agrupar cosas sin que al final se quede en un grupo

1
Kaledros

Pick one.

1 respuesta
desu

Tremendo:
https://colin-scott.github.io/personal_website/research/interactive_latency.html

Imaginaros la porqueria de codigo que escribimos...

1 1 respuesta
Slowbro

#33465 Pero en la carrera no se da temas de arquitectura?

#33464 ¿? Para la segunda condición me falta un 1 delante del 5 de la primera.

1 respuesta
desu
#33466Slowbro:

Pero en la carrera no se da temas de arquitectura?

Se dan algunos fundamentos basicos pero no se aplican.

Te ense;an lo que es la ram y la cpu si. Pero luego en programacion no te ense;an como usarlo bien. Salvo quizas alguna asignatura de seguridad.

Tambien la arquitectura que se ense;a es una arquitectura "ideal" que no corresponde al mundo real.

1
PaCoX

¿Qué es real? ¿Cómo defines lo real? Si estás hablando de lo que puedes sentir, lo que puedes oler, lo que puedes saborear y ver, entonces lo real son simplemente señales eléctricas interpretadas por tu cerebro.

B

hostias como se ha levantado aristóteles hoy

desu

En la carrera nunca te han ense;ado que escribir esto:

rs = list.stream().filter(e => e > 2).map(e * 2).toList();

o

rs = []
for e in list:
  if e > 2:
    r = e * 2
    rs.append(r)
return rs

Es un anti pattern y una mala practica horrible.

La gente que escribe codigo asi la verdad es que me da pena. porque no saben ni lo mas basico de la programacion o hardware.

En mi stream el otro dia os puse un caso real aplicando esto al proceso de datos en batch y poder no solo ir mas rapido y eficiente, sino ademas conseguir paralelizacion gratis XD

2 respuestas
B

#33470 a mí el año pasado me enseñaron a hacer loop unrolling en ensamblador qué tiempos

1 respuesta
desu

#33471 la gente se cree que sus patrones de dise;o de POO (mierda) se ejecutan sobre burritos monadicos

JuAn4k4

#33470 Pero no decías ayer que premature performance optimization is the root of all evil ? ¿ En que quedamos ?

2 respuestas
Naith

#33473 en que las cosas que desconoce son premature optimization y el resto no.

1
desu

#33473 esa frase esta sacada de contexto. lo he explicado muchas veces.

existe una diferencia entre ser un puto mono que no sabe lo que hace y querer optimizar algo como loco.

el contexto original dice las 2 cosas.

https://amturing.acm.org/award_winners/knuth_1013846.cfm

yo tambien digo.

el otro dia le dije que no haga premature optimization. pero eso no quita que no escribas buen codigo desde el principio.

el problema es que la gente es un puto mono y hace las cosas mal a proposito.

mi standard de codigo esta por encima de la media.

para mi entender cuando hacer un loop y cuando hacer dos para optimizar la cache locality es algo trivial que a simple vista veo y entiendo.

veo a color y en 3D y el resto del mundo parece que ven el mundo en blanco y negro a 2D.

r2d2rigo

jaja pa k quiero eso si tengo LINQ

2
desu

como me toca las pelotas los monos que programan sin saber lo que es un aplicativo...

haz un puto parser combinator pedazo de anormal

estoy hasta las pelotas de encontrarme variables hardcoded o defaults random por no componer con functores

Wei-Yu

precisamente a poco que necesites algo de performance linq hace aguas 9/10 veces

1 respuesta
B

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than right now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

r2d2rigo

#33478 a ver si vas a ser tu el que no sabe usarlo...

LINQ usa deferred execution para absolutamente todo (cuando esta disponible en origen, claro). Podrias hacer un Select de una tabla con 10M de rows y si el adaptador utiliza yield adecuadamente, estaria devolviendote los records bajo demanda cuando iterases el resultado.

Pero claro mucho mas facil hacer un ToList() y llorar porque te lo aplana todo el resultado al momento.