Feda /dev/ - No Javascript allowed

Normas
spoiler
Personas non gratas
Memes feda dev




B

#34110 Por que quiero hacer:

int o = 3;
int e = ++ ++ ++ ++ ++ ++ ++ ++ ++o;

¿Que te parece?

Si estoy en un lenguaje que lo soporta y se que existe y lo entiendo no me cuesta ni media mierda usarlo ni leerlo xD no se que dramas tienes. ¿Que no te gusta porque Richard Jhonson de Google Labs Private World dice que no? Pues me alegro.
Yo a diferencia de RIchard, soy tonto... y necesito ser lo más explicito que se... tampoco conzoco con que parámetros va a ser compilado el programa... ni con que compilador.

1 respuesta
desu

#34111 no es ?

int o = 3;
int e = 9 + o;

o mejor aun

int e = 12;

si no lo sabes en comptime pero sabes que queries incrementar algo N veces es lo mismo que sumar N...

entiendo que en el open source haceis codigo de mierda que a nadie le importa pero a ver...

hasta el mas fpero del hilo te dira lo que te estoy diciendo.

y por "esto" chicos, hoy en dia el ++i ya no se soporta en lenguajes modernos, y con "esto" me refiero al fpero subnormal de arriba.

#34111overflow:

y necesito ser lo más explicito que se... tampoco conzoco con que parámetros va a ser compilado el programa... ni con que compilador.

pues mal vas usando ++i si tiene que ser explicito... si no sabes que compilador se va a usar deberia soportar en un rango... con mas razon aun no usarias ++i.... en fin.

XD

si tu codigo en c depende de si compilas con -o2 o -o3 mal vamos, o3 te va a hacer todo inline por ejemplo... hay cosas que deberias vigilar si las fuerzas inyectando ensamblador por ejemplo XD

por esto o3 de hecho no se recomienda con code bases antiguas y ciertos proyectos open source... por gente que hacia guarradas asi, sin acritud, que hoy estoy en modo buena gente.

1 2 respuestas
B

#34112 xD osea que tu haces bucles que iteran 10 veces sin hacer nada y es bien... yo hago otro ejemplo y no tardas ni 2 mins es sacarle punta a un ejemplo... se te nota a tope desu... sigue así ;)

El día que entiendas la diferencia entre un lvalue y un rvalue me haces un llama-cuelga.

1 respuesta
MTX_Anubis

#34112 Seguro que ya te lo has leido pero te lo regalo, que me siento generoso antes de irme a dormir:

https://queue.acm.org/detail.cfm?id=1814327

Aunque hace mierdas open source.

1 respuesta
r2d2rigo

Desu en 2022 diciendo que no hay diferencia entre preincremento y postincremento.

Mira chaval, como se nota que no has picado mas que frontend en HTML.

2
desu

#34114 no me lo voy a leer porque es de sentido comun y esa leccion ya me la se de sobra... ademas que esa es una de mis criticas a las entrevistas de faangs:

The biggest problem for me is that this style of interview focuses on theoretical efficiency. And the discussions about the interview process only cares about "real world engineering" vs "interview questions". We are discussing algorithms and data structures. What about actual performance? Your code will run on real hardware. Are we interviewing considering that?

Do you know what memory alignment is? Padding? Branching? The implications in performance of a cache miss? These questions are never asked!

Two nested for loops O(n2) where you considered memory alignment and your cpu cache size when choosing the data structures and defining your structs will perform better than your O(log n) algo with a high missing rate and branching all over the place.

In my day to day I work on a garbage collected language (which I think are great, don't get me wrong) and I'm tired of seeing programmers thinking that memory is free, GC is free, syscalls and networking are magic...

Software engineering culture is broken in general. From the education phase to the "real world".

yo

el a;o pasado sacaron un nuevo sort inestable (creo) y ya lo tenemos en rust, cpp y go.

https://news.ycombinator.com/item?id=31106157

para estructuras de datos siempre mira lo que hace rust, suelen ir 1 a;o por delante de cpp :)

https://doc.rust-lang.org/std/collections/index.html
https://doc.rust-lang.org/stable/std/collections/struct.HashMap.html

dicho esto me has pasado un paper de June 11, 2010. deberias suponer que alguien como yo se lo leyo en June 12, 2010. si fuese algo relevante.

De hecho ese paper que no he leido, con las cpu de hoy en dia ya esta obsoleto te lo aseguro.

El que yo siempre he puesto por aqui es https://gamozolabs.github.io/metrology/2019/08/19/sushi_roll.html

#34113overflow:

lvalue y un rvalue

esas reglas las pone la implementacion (compilador) no la sintaxis del lenguaje.

puedes seguir haciendo el ridiculo si quieres. como puedes ver estoy muy formativo estos dias. no me gusta esa imagen de toxico que me sale en tu web de mierda.

siendo tu un experto en lvalue y en rvalue nos puedes explicar como funciona el compilador (normalmente) y como genera todo eso?? te lo iba a explicar porque leyendo tus respuestas veo que eres un pajeet, pero ahora resulta que eres el mismo Jon Blow.

Elige un compilador y muestrame todo el proceso hasta el asamblador. Pero muestrame el codigo en el source del compilador. NO me googles en geeksforgeeks lo que es un front end o back end... que para ti eso es picar en javascript asi haces los 2 tontito.

1 respuesta
PaCoX

que pereza todo xdd

vivora
#34116desu:

no me gusta esa imagen de toxico que me sale en tu web de mierda.

#34116desu:

NO me googles en geeksforgeeks lo que es un front end o back end... que para ti eso es picar en javascript asi haces los 2 tontito.

1 respuesta
desu

#34118 acabas de descubrir el humor ironico.

Modo de expresión o figura retórica que consiste en decir lo contrario de lo que se quiere dar a entender, empleando un tono, una gesticulación o unas palabras que insinúan la interpretación que debe hacerse.

B

Para otros lenguajes no se pero yo creo que la paja mental del ++i o i++ en C++ viene porque el operador sobrecargado de incremento en clases sí que tiene un impacto en la performance porque en un caso se hace una copia y en otro no

T& operator ++(); //sobrecarga el preincremento
T operator ++(); //sobrecarga el postincremento

Pero es que con enteros a no ser que necesites el resultado anterior, con cosas como

x = (y++) + z;

el compilador lleva traduciendo eso a un addl 1, %xxx desde que Franco inauguraba pantanos en el nodo (y literalmente probablemente), incluso los compiladores más cutres para arquitecturas marcianísimas saben hacer eso desde casi siempre lol

O sea me gustaría ver un código y el objdump de turno que demuestre que me equivoco, pero vaya me parece bastante irrelevante hoy día

1
B

A mí lo que me flipa es que estéis hablando de performance sin tener ni idea de lo que es un puntero o una vm

3 1 respuesta
desu

#34121 pues esta claro que el fpero que inicio esto no tiene ni idea xq precisamente hablaba de copias con valores, pero eh, dime la diferencia entre un lvalue y un rvalue

el mismo tio que escribio una perla como esta completamente en serio:

from __future__ import annotations
from abc import ABC, abstractmethod


class Command(ABC):
    """
    The Command interface declares a method for executing a command.
    """

@abstractmethod
def execute(self) -> None:
    pass


class SimpleCommand(Command):
    """
    Some commands can implement simple operations on their own.
    """

def __init__(self, payload: str) -> None:
    self._payload = payload

def execute(self) -> None:
    print(f"SimpleCommand: See, I can do simple things like printing"
          f"({self._payload})")


class ComplexCommand(Command):
    """
    However, some commands can delegate more complex operations to other
    objects, called "receivers."
    """

def __init__(self, receiver: Receiver, a: str, b: str) -> None:
    """
    Complex commands can accept one or several receiver objects along with
    any context data via the constructor.
    """

    self._receiver = receiver
    self._a = a
    self._b = b

def execute(self) -> None:
    """
    Commands can delegate to any methods of a receiver.
    """

    print("ComplexCommand: Complex stuff should be done by a receiver object", end="")
    self._receiver.do_something(self._a)
    self._receiver.do_something_else(self._b)


class Receiver:
    """
    The Receiver classes contain some important business logic. They know how to
    perform all kinds of operations, associated with carrying out a request. In
    fact, any class may serve as a Receiver.
    """

def do_something(self, a: str) -> None:
    print(f"\nReceiver: Working on ({a}.)", end="")

def do_something_else(self, b: str) -> None:
    print(f"\nReceiver: Also working on ({b}.)", end="")


class Invoker:
    """
    The Invoker is associated with one or several commands. It sends a request
    to the command.
    """

_on_start = None
_on_finish = None

"""
Initialize commands.
"""

def set_on_start(self, command: Command):
    self._on_start = command

def set_on_finish(self, command: Command):
    self._on_finish = command

def do_something_important(self) -> None:
    """
    The Invoker does not depend on concrete command or receiver classes. The
    Invoker passes a request to a receiver indirectly, by executing a
    command.
    """

    print("Invoker: Does anybody want something done before I begin?")
    if isinstance(self._on_start, Command):
        self._on_start.execute()

    print("Invoker: ...doing something really important...")

    print("Invoker: Does anybody want something done after I finish?")
    if isinstance(self._on_finish, Command):
        self._on_finish.execute()


if __name__ == "__main__":
    """
    The client code can parameterize an invoker with any commands.
    """

invoker = Invoker()
invoker.set_on_start(SimpleCommand("Say Hi!"))
receiver = Receiver()
invoker.set_on_finish(ComplexCommand(
    receiver, "Send email", "Save report"))

invoker.do_something_important()

en lugar de usar un diccionario... HAHAHAHAHAHAHAHHAHAHAHAHAHAHAHA

voy a editar y educar, un tema parecido a este que mucha gente no sabe es como se pasan los parametros a las funciones, hoy en dia hay varias maneras de hacerlo como hace prefetch en los registros directamente y el compilador siempre usa la mejor. no tienes que preocuparte.

Traber

Joder, a ver si alguien mete al cabezapolo otra vez en la nevera unos días, vaya tela xd.

8 1 respuesta
eondev

#34123 comentario del hilo desde que llegó el pelmazo de desu

1 respuesta
Fyn4r

Oye @desu ahora que estás ganando karma, opiniones sobre https://echo.labstack.com/ ?

2 respuestas
r2d2rigo

#34125 la reputa madre que tienen todo el codigo en el directorio raiz https://github.com/labstack/echo

Parece un proyecto de fin de semana de recien licenciado de bootcamp.

desu

#34124 sin mi no habia comentarios en el hilo.

#34125 framwork = mal

una libreria como mux es suficiente

el problema de los frameworks como gin (este no lo se) es que jode las signature de la std lib

luego en mi dia a dia tampoco noto mucho problema. lo que es estuipido es que tengas esto:

e.Use(func(next echo.HandlerFunc) echo.HandlerFunc {
  return func(c echo.Context) error {
    // Extract the credentials from HTTP request header and perform a security
    // check

// For invalid credentials
return echo.NewHTTPError(http.StatusUnauthorized, "Please provide valid credentials")

// For valid credentials call next
// return next(c)
  }
})

en lugar de usar la std lib:

  return func(c context.Context) error {
                    http.Error(c.w, "StatusUnauthorized", 401)
  }

por ejemplo

al final estos frameworks lo que hacen es tener funciones que se van llamando de una al a siguiente... y tienes un wrapper... nada mas... el context dara problemas para testear tus handlers con httptest. la stdlib estara rota.

1 1 respuesta
eondev

#34127 entre no tener notificaciones y tener notificaciones para no leer nada de la diarrea que vomitas, prefiero lo primero XD

1 respuesta
desu

#34128 diarrea es necesitar un framework para esto:

echo.NewHTTPError(http.StatusUnauthorized, "Please provide valid credentials")

vs

http.Error(c.w, "Please provide valid credentials", http.StatusUnauthorized)

pero bueno, fperos fpeando

por cierto arriba lo he copy pasteado mal XD

Ranthas

El nivel de retraso en este hilo está batiendo récords nunca vistos hasta ahora, menudo momento para estar vivo.

Y no, esta vez no es cosa de @eondev

3 2 respuestas
desu

#34130 Cuanta razon tienes amigo rata.

Esta gente esta viviendo en la epoca de Da Vinci y le discuten como pintar un cuadro o como sus bocetos de arquitectura estan mal.

Yo daria las gracias por poder hablar conmigo.

Es un autentico privilegio.

Algun dia no podran hacerlo y lloraran.

1 respuesta
PaCoX

#34131 pa cuando un libro?
Yo conozco a uno que inventó dos palabras: maquinari i programari

1 respuesta
desu

#34132 a mi no me motiva que la gente me respete lo mas minimo, a mi me motiva ayudar a que la gente se respete a si misma.

libro no pero estoy trabajando en un par de workshop / tech talk desde hace tiempo.

los que yo os recomiendo son mis dos ultimos:

  • data science aplicado a sre, estadistica aplicada a monitorear tus servicios y entender las metricas
  • backend: eficiencia y performance, como hacer troubleshoot, debug en prod y hacer que tus servicios vuelen

el dark side of the moon es mi mayor trabajo y proyecto de vida. todo lo que he aprendido en los ultimos 15 a;os. toda la mierda que suelto pero sin verborrea. solo calidad.

2 respuestas
Kaledros
#34133desu:

todo lo que he aprendido en los ultimos 15 a;os

96 kB

5 1 respuesta
desu

#34134 buena es XDDD

es que esta casi vacio, tengo los puntos en una nota, te dejo el primero:

El segundo de bonus: OOP is bad, FP too

1 respuesta
Kaledros

#34135 Pues me interesa para cuando lo tengas, la verdad.

frekaice

#34133 Para cuando una masterclass en twitch? Que el de monitoring parece interesante

2
desu

Hoy me he venido con un colega a trabajar desde una cafeteria.

Affogattos de baileys, capucchino de tarimisu, y toque.

Os imaginais estar en una oficina ahora mismo?

Pasad un gran dia!!!

1 3 respuestas
vivora

#34138 Ah pero que eso es un día excepcional en tu vida? Que hay otros días que tienes que ir a la oficina? Entiendo

1 1 respuesta
_Rpv

#34138 No serás el típico Hipster que va a un Starbucks a trabajar haciendo hincapié en lo bueno que es en su trabajo?
Oh, wait.

1 respuesta