Skip to content
0
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Benvenuti nel Dudes Club Italiano

9

Online

36

Users

120

Topics

1.3k

Posts
  1. Benvenuti nel Dudes Club Italiano.
  2. Whatever, man
  3. Parliamo di software 2: Dudeswave

Parliamo di software 2: Dudeswave

Scheduled Pinned Locked Moved Whatever, man
75 Posts 6 Posters 238 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • abscundefined absc

    @Aethiss said in Parliamo di software 2: Dudeswave:

    Ni, se dalla tua descrizione parli di CMS, Blog.. social. Insomma roba accessibile via web.
    Erlang fa il suo lavoro. Si. E' un must in quello che fa' ? No. E non e' questione di piacere o non piacere

    Lato back-end Go/Java sono ancora un must. NodeJs gia' con node 18.x.x era a livello lato server di fare un lavoro eccellente sia in tempi di risposta, seppur ancora carente nel consumo delle risorse. Siamo a Node 24.x.x (Se fai tu stesso 2 prove facili facili, nel tuo server casalingo, vedrai che la comparazione e' impietosa).

    Non confondere "web" con "infrastruttura". Erlang serve il payload al tuo browser e poi non fa altro che rispondere a delle chiamate HTTP con un processo erlang (processo interno alla BEAM) per richiesta.

    Go e Java sarebbero dei must su quali basi, di grazia? Per i web framework? Altrimenti qualsiasi linguaggio che abbia un server web decente funziona, se non si bada esclusivamente alla moda.

    E no, l'idea di concorrenza di Node (callbacks) e' una merda che deve morire e male. Troppa gente crede che quello sia un modo scalabile di programmare. Non lo e', fa cacare e ti limita tutto ad un processo su una sola macchina. Go va gia' meglio con le goroutines ed i channels. Erlang va oltre, rendendo tutto trasparente fra un set piu' o meno grande di nodi computazionali connessi in una rete di macchine.

    Se vuoi, vai a vedere quanto e' schifoso programmare ad eventi in C e tutti vengono a sbragare su libevent e simili. Sono retaggi del preistorico che porca puttana, nessuno ha il coraggio di urlare: "NO! L'I/O NON BLOCCANTE FICCATEVELO NEL CULO!".

    Vedo di spiegarmi meglio. Come scala un app ha molte sfaccettature. Molte volte ho sentito da persone piu' varie che i framework javascript vengono usati per moda. In realta' e' falso. Facebook (che ha tirato fuori React), Google (che ha prodotto Angular), l'hanno fatto per un motivo ben preciso. E cioe' spostare il carico dal server ai client, avere applicazioni web piu' veloci e belle da usare, e delegare le comunicazioni server ai vari microservizi (Json its your friend!). Piu' ne hai, meglio scali, meglio tieni botta per tutte le problematiche relative ai big-data.
    Un app web JS comparata a ,ignoriamo Erland, mettiamo php, escludendo per il momento il layer di caching, consuma 1/100 delle risorse lato server. Letteralmente scarichi il js sul tuo browser, ed e' TUTTO client. E se sono 100 utenti a navigare, i 100 con un app in React (ad esempio), parlano con il web server 1 volta, un app php ad ogni pagina che naviga.

    Poi se si vuole andare piu' nel profondo (sicurezza e/o indicizzazione) , bisogna iniziare a parlare di app isomorfiche (https://en.wikipedia.org/wiki/Isomorphic_JavaScript), ma mi fermo qua' che altrimenti sembra che voglio fare il professore (CHE NON SONO).

    Io parlo di scalabilita' lato back-end. Se vuoi spingere la complessita' lato client sei liberissimo di farlo. Quello che io voglio e' aggiungere un nodo, fare un ping, ed averlo a rispondere a richieste in un secondo. Ma andiamo ai tuoi argomenti.

    "Spostare carico dal server al client". Mi spieghi allora perche' il mio laptop suda ad usare una qualsiasi app scritta con React o Angular? Non e' che forse, ma dico forse, a questo punto queste applicazioni sarebbero dovute essere native e girare come codice macchina vero e non come un bundle di Javascript obeso dentro un browser web altrettanto obeso?

    Puoi spostare la complessita' anche lato client se vuoi, nessuno te lo vieta. Ma se vuoi dati aggiornati dovrai andare dal server, per postarli, o almeno richiederli, no? Dove starebbe la differenza con un'applicazione PHP in questo caso? Non capisco il nesso. Non c'e' scritto da nessuna parte che un'applicazione scritta in PHP lato back-end non possa servire lo stesso Javascript che usi nella tua fantasmagorica app react. PHP risponde a richieste HTTP come una qualsiasi altra tecnologia simile, come e quante volte la tua applicazione contatta il server, esula dalla tecnologia usata.

    Non c'e' nulla in PHP di diverso da Node in questo senso. Sono due tecnologie diverse che fanno la stessa cosa.

    Una parentesi sui microservizi e JSON: i microservizi devono morire e l'idea che JSON sia un buon formato di interscambio dati deve morire con essi, quando nel 99% dei casi una banale chiamata a funzione sarebbe stata sufficente. Hai mai scritto un parser JSON da zero? Tutti quelli che mi vengono a raccontare che serializzare e deserializzare stringhe UTF-8, incluso l'escaping e' un modo efficente di trasmettere dati fra decine se non centinaia di processi, devono essere malmenati :).

    JSON e' una merda e le architetture a microservizio devono morire.

    Ah! Un cluster erlang ti da un architettura a microservizio in automatico, inclusa service discovery e senza bisogno di JSON. Ma qui me la tiro dai 🙂

    Anzi, ti dico questo. Se per caso vuoi una qualsiasi mano (non nei miei unici 10gg di vacanza adesso ehehe), nei miei limiti di tempo e non, lo faccio con voglia e piacere 😉

    Detto questo, ma non c'erano Tette un tempo. Che caxx e' successo ?

    Tette nella sezione apposita. Potrebbe essermi utile una mano con il front-end, quella si. Non sono un programmatore web purtroppo!

    Aethissundefined Offline
    Aethissundefined Offline
    Aethiss
    Nichilisti
    wrote last edited by
    #27

    @absc said in Parliamo di software 2: Dudeswave:

    "Spostare carico dal server al client". Mi spieghi allora perche' il mio laptop suda ad usare una qualsiasi app scritta con React o Angular? Non e' che forse, ma dico forse, a questo punto queste applicazioni sarebbero dovute essere native e girare come codice macchina vero e non come un bundle di Javascript obeso dentro un browser web altrettanto obeso?

    Bho, non ho mai avuto problemi con il mio portatile a vedere siti web (che non siano veramente scritti con i piedi da cani). Mi linki un sito web che ti risulta lento ? Riguardo alla questione bundle js, capisco che intendi, ma come si diceva prima... sappiamo come e' andata a finire 🙂

    @absc said in Parliamo di software 2: Dudeswave:

    Puoi spostare la complessita' anche lato client se vuoi, nessuno te lo vieta. Ma se vuoi dati aggiornati dovrai andare dal server, per postarli, o almeno richiederli, no? Dove starebbe la differenza con un'applicazione PHP in questo caso? Non capisco il nesso. Non c'e' scritto da nessuna parte che un'applicazione scritta in PHP lato back-end non possa servire lo stesso Javascript che usi nella tua fantasmagorica app react. PHP risponde a richieste HTTP come una qualsiasi altra tecnologia simile, come e quante volte la tua applicazione contatta il server, esula dalla tecnologia usata.

    Non c'e' nulla in PHP di diverso da Node in questo senso. Sono due tecnologie diverse che fanno la stessa cosa.

    No mi dispiace, non ci siamo capiti in questo senso. un applicazione php, che risponde html, passa da un web-server, con un plugin per il php, fa il lavoro chesso', di comunicare con un db o altro, poi formatta la risposta html lato server, e la risputa al client.

    Io intendo: App-Js --> XHTTP request (Json) --> aggiorna App-js (no caricamenti, leggi : https://en.wikipedia.org/wiki/Single-page_application).

    Non ho parlato di node. ne ho parlato solo se confronti un server node ed un server in erlang che ti restituiscono "hello world". Node vince. Ma perde vs Go/Java. Non lo dico io, lo dicono i benchmark. Ma puoi testarlo facile tu stesso.

    @absc said in Parliamo di software 2: Dudeswave:

    Una parentesi sui microservizi e JSON: i microservizi devono morire e l'idea che JSON sia un buon formato di interscambio dati deve morire con essi

    Questo pero' e' lo standard. Il mondo usa per il 99% Json per le comunicazioni tra microservizi. Ok, non ti piace. Ma le alternative ?

    Bho, sara' che mi sto facendo vecchio. Sara' che lato web o app per cellulari ho usato (in produzione) tutta la storia degli ultimi 25 anni. Quando hai app con un livello di complessita', mole di dati imponente, pagamenti anche... no mi dispiace. Divide et Imperat: Microservizi specifici > Monolite.

    Importante: Mi sono reso conto che ho fatto una cosa che odio in generale. E cioe' portare la discussione verso tutto un altro discorso mentre tu parlavi del tuo progetto, e di questo me ne scuso.
    Si certo, aiuto lato html te lo do piu' che volentieri

    abscundefined 2 Replies Last reply
    0
    • Aethissundefined Aethiss

      @absc said in Parliamo di software 2: Dudeswave:

      "Spostare carico dal server al client". Mi spieghi allora perche' il mio laptop suda ad usare una qualsiasi app scritta con React o Angular? Non e' che forse, ma dico forse, a questo punto queste applicazioni sarebbero dovute essere native e girare come codice macchina vero e non come un bundle di Javascript obeso dentro un browser web altrettanto obeso?

      Bho, non ho mai avuto problemi con il mio portatile a vedere siti web (che non siano veramente scritti con i piedi da cani). Mi linki un sito web che ti risulta lento ? Riguardo alla questione bundle js, capisco che intendi, ma come si diceva prima... sappiamo come e' andata a finire 🙂

      @absc said in Parliamo di software 2: Dudeswave:

      Puoi spostare la complessita' anche lato client se vuoi, nessuno te lo vieta. Ma se vuoi dati aggiornati dovrai andare dal server, per postarli, o almeno richiederli, no? Dove starebbe la differenza con un'applicazione PHP in questo caso? Non capisco il nesso. Non c'e' scritto da nessuna parte che un'applicazione scritta in PHP lato back-end non possa servire lo stesso Javascript che usi nella tua fantasmagorica app react. PHP risponde a richieste HTTP come una qualsiasi altra tecnologia simile, come e quante volte la tua applicazione contatta il server, esula dalla tecnologia usata.

      Non c'e' nulla in PHP di diverso da Node in questo senso. Sono due tecnologie diverse che fanno la stessa cosa.

      No mi dispiace, non ci siamo capiti in questo senso. un applicazione php, che risponde html, passa da un web-server, con un plugin per il php, fa il lavoro chesso', di comunicare con un db o altro, poi formatta la risposta html lato server, e la risputa al client.

      Io intendo: App-Js --> XHTTP request (Json) --> aggiorna App-js (no caricamenti, leggi : https://en.wikipedia.org/wiki/Single-page_application).

      Non ho parlato di node. ne ho parlato solo se confronti un server node ed un server in erlang che ti restituiscono "hello world". Node vince. Ma perde vs Go/Java. Non lo dico io, lo dicono i benchmark. Ma puoi testarlo facile tu stesso.

      @absc said in Parliamo di software 2: Dudeswave:

      Una parentesi sui microservizi e JSON: i microservizi devono morire e l'idea che JSON sia un buon formato di interscambio dati deve morire con essi

      Questo pero' e' lo standard. Il mondo usa per il 99% Json per le comunicazioni tra microservizi. Ok, non ti piace. Ma le alternative ?

      Bho, sara' che mi sto facendo vecchio. Sara' che lato web o app per cellulari ho usato (in produzione) tutta la storia degli ultimi 25 anni. Quando hai app con un livello di complessita', mole di dati imponente, pagamenti anche... no mi dispiace. Divide et Imperat: Microservizi specifici > Monolite.

      Importante: Mi sono reso conto che ho fatto una cosa che odio in generale. E cioe' portare la discussione verso tutto un altro discorso mentre tu parlavi del tuo progetto, e di questo me ne scuso.
      Si certo, aiuto lato html te lo do piu' che volentieri

      abscundefined Online
      abscundefined Online
      absc
      Dudi
      wrote last edited by
      #28

      @Aethiss

      Leggero! E' tutto permesso, qui!

      Un'ascia e' per sempre

      1 Reply Last reply
      0
      • Aethissundefined Aethiss

        @absc said in Parliamo di software 2: Dudeswave:

        "Spostare carico dal server al client". Mi spieghi allora perche' il mio laptop suda ad usare una qualsiasi app scritta con React o Angular? Non e' che forse, ma dico forse, a questo punto queste applicazioni sarebbero dovute essere native e girare come codice macchina vero e non come un bundle di Javascript obeso dentro un browser web altrettanto obeso?

        Bho, non ho mai avuto problemi con il mio portatile a vedere siti web (che non siano veramente scritti con i piedi da cani). Mi linki un sito web che ti risulta lento ? Riguardo alla questione bundle js, capisco che intendi, ma come si diceva prima... sappiamo come e' andata a finire 🙂

        @absc said in Parliamo di software 2: Dudeswave:

        Puoi spostare la complessita' anche lato client se vuoi, nessuno te lo vieta. Ma se vuoi dati aggiornati dovrai andare dal server, per postarli, o almeno richiederli, no? Dove starebbe la differenza con un'applicazione PHP in questo caso? Non capisco il nesso. Non c'e' scritto da nessuna parte che un'applicazione scritta in PHP lato back-end non possa servire lo stesso Javascript che usi nella tua fantasmagorica app react. PHP risponde a richieste HTTP come una qualsiasi altra tecnologia simile, come e quante volte la tua applicazione contatta il server, esula dalla tecnologia usata.

        Non c'e' nulla in PHP di diverso da Node in questo senso. Sono due tecnologie diverse che fanno la stessa cosa.

        No mi dispiace, non ci siamo capiti in questo senso. un applicazione php, che risponde html, passa da un web-server, con un plugin per il php, fa il lavoro chesso', di comunicare con un db o altro, poi formatta la risposta html lato server, e la risputa al client.

        Io intendo: App-Js --> XHTTP request (Json) --> aggiorna App-js (no caricamenti, leggi : https://en.wikipedia.org/wiki/Single-page_application).

        Non ho parlato di node. ne ho parlato solo se confronti un server node ed un server in erlang che ti restituiscono "hello world". Node vince. Ma perde vs Go/Java. Non lo dico io, lo dicono i benchmark. Ma puoi testarlo facile tu stesso.

        @absc said in Parliamo di software 2: Dudeswave:

        Una parentesi sui microservizi e JSON: i microservizi devono morire e l'idea che JSON sia un buon formato di interscambio dati deve morire con essi

        Questo pero' e' lo standard. Il mondo usa per il 99% Json per le comunicazioni tra microservizi. Ok, non ti piace. Ma le alternative ?

        Bho, sara' che mi sto facendo vecchio. Sara' che lato web o app per cellulari ho usato (in produzione) tutta la storia degli ultimi 25 anni. Quando hai app con un livello di complessita', mole di dati imponente, pagamenti anche... no mi dispiace. Divide et Imperat: Microservizi specifici > Monolite.

        Importante: Mi sono reso conto che ho fatto una cosa che odio in generale. E cioe' portare la discussione verso tutto un altro discorso mentre tu parlavi del tuo progetto, e di questo me ne scuso.
        Si certo, aiuto lato html te lo do piu' che volentieri

        abscundefined Online
        abscundefined Online
        absc
        Dudi
        wrote last edited by
        #29

        @Aethiss

        Io intendo: App-Js --> XHTTP request (Json) --> aggiorna App-js (no caricamenti, leggi : https://en.wikipedia.org/wiki/Single-page_application ).

        Ho capito che parlavi di XMLHttpRequest, ma davvero non c'e' nulla nello stack PHP che ti impedisca di fare lo stesso. Uno script PHP e' giusto quello, uno script PHP. Che sputi fuori HTML o JSON non importa e oltre al classiclo plugin per apache, puoi usarlo tramite fastcgi, o lightspeed se vuoi performance migliori.

        Zabbix per dire: ha il front-end scritto in PHP, usa XMLHttpRequest per recuperare i dati da delle API tramite JSON e le API sono esposte tramite PHP.

        Hai sempre potuto farlo, che PHP fosse usato perlopiu' per generare HTML prima che XMLHttpRequest fosse la nuova bibbia, e' un altro paio di maniche.

        Non ho parlato di node. ne ho parlato solo se confronti un server node ed un server in erlang che ti restituiscono "hello world". Node vince. Ma perde vs Go/Java. Non lo dico io, lo dicono i benchmark. Ma puoi testarlo facile tu stesso.

        I benchmark hanno sempre lasciato il tempo che trovano e onestamente, non sono mai stati realistici.

        Mettiamoci di mezzo un database, mentre in Erlang uso il suo Mnesia e poi ne riparliamo.

        Ma a parte questo, sono molto, molto convinto che confrontassero anche li', modelli diversi. Non puoi confrontare Node che e' single-thread con Erlang, dove di default se usi un qualsiasi web framework o web server, la prima cosa che viene fatta e' spawnare un processo interno per questioni di concorrenza. Inoltre, parliamo di un linguaggio imperativo e mutabile contro un linguaggio funzionale e immutabile.

        Un sistema come Node vincera' sempre, su un benchmark "hello world", ma non scalera' allo stesso modo e non avra' le stesse garanzie di latenza. Che non significa essere il piu' veloce, in assoluto, ma fornire le stesse performance in modo consistente, pur avendo un garbage collector. La questione e' molto, molto piu' complessa di un banale benchmark.

        Spero sia chiaro il punto.

        Bho, sara' che mi sto facendo vecchio. Sara' che lato web o app per cellulari ho usato (in produzione) tutta la storia degli ultimi 25 anni. Quando hai app con un livello di complessita', mole di dati imponente, pagamenti anche... no mi dispiace. Divide et Imperat: Microservizi specifici > Monolite.

        E dove sarebbe diverso rispetto all'avere moduli specifici? Badaben che non ho detto no ai servizi, sto dicendo no alla proliferazione incontrollata di microservizi.

        Importante: Mi sono reso conto che ho fatto una cosa che odio in generale. E cioe' portare la discussione verso tutto un altro discorso mentre tu parlavi del tuo progetto, e di questo me ne scuso.

        Non scusarti per questo. Sono sempre discussioni interessanti! Qui siamo al bar, e non ci prendiamo troppo seriamente.

        Un'ascia e' per sempre

        Aethissundefined 1 Reply Last reply
        0
        • abscundefined absc

          @Aethiss

          Io intendo: App-Js --> XHTTP request (Json) --> aggiorna App-js (no caricamenti, leggi : https://en.wikipedia.org/wiki/Single-page_application ).

          Ho capito che parlavi di XMLHttpRequest, ma davvero non c'e' nulla nello stack PHP che ti impedisca di fare lo stesso. Uno script PHP e' giusto quello, uno script PHP. Che sputi fuori HTML o JSON non importa e oltre al classiclo plugin per apache, puoi usarlo tramite fastcgi, o lightspeed se vuoi performance migliori.

          Zabbix per dire: ha il front-end scritto in PHP, usa XMLHttpRequest per recuperare i dati da delle API tramite JSON e le API sono esposte tramite PHP.

          Hai sempre potuto farlo, che PHP fosse usato perlopiu' per generare HTML prima che XMLHttpRequest fosse la nuova bibbia, e' un altro paio di maniche.

          Non ho parlato di node. ne ho parlato solo se confronti un server node ed un server in erlang che ti restituiscono "hello world". Node vince. Ma perde vs Go/Java. Non lo dico io, lo dicono i benchmark. Ma puoi testarlo facile tu stesso.

          I benchmark hanno sempre lasciato il tempo che trovano e onestamente, non sono mai stati realistici.

          Mettiamoci di mezzo un database, mentre in Erlang uso il suo Mnesia e poi ne riparliamo.

          Ma a parte questo, sono molto, molto convinto che confrontassero anche li', modelli diversi. Non puoi confrontare Node che e' single-thread con Erlang, dove di default se usi un qualsiasi web framework o web server, la prima cosa che viene fatta e' spawnare un processo interno per questioni di concorrenza. Inoltre, parliamo di un linguaggio imperativo e mutabile contro un linguaggio funzionale e immutabile.

          Un sistema come Node vincera' sempre, su un benchmark "hello world", ma non scalera' allo stesso modo e non avra' le stesse garanzie di latenza. Che non significa essere il piu' veloce, in assoluto, ma fornire le stesse performance in modo consistente, pur avendo un garbage collector. La questione e' molto, molto piu' complessa di un banale benchmark.

          Spero sia chiaro il punto.

          Bho, sara' che mi sto facendo vecchio. Sara' che lato web o app per cellulari ho usato (in produzione) tutta la storia degli ultimi 25 anni. Quando hai app con un livello di complessita', mole di dati imponente, pagamenti anche... no mi dispiace. Divide et Imperat: Microservizi specifici > Monolite.

          E dove sarebbe diverso rispetto all'avere moduli specifici? Badaben che non ho detto no ai servizi, sto dicendo no alla proliferazione incontrollata di microservizi.

          Importante: Mi sono reso conto che ho fatto una cosa che odio in generale. E cioe' portare la discussione verso tutto un altro discorso mentre tu parlavi del tuo progetto, e di questo me ne scuso.

          Non scusarti per questo. Sono sempre discussioni interessanti! Qui siamo al bar, e non ci prendiamo troppo seriamente.

          Aethissundefined Offline
          Aethissundefined Offline
          Aethiss
          Nichilisti
          wrote last edited by
          #30

          @absc ma in realta' mi trovi d'accordo in larga parte eh, vengo da programmazione old school anche io. E' vero che i benchmark lasciano il tempo che trovano.

          solo una cosa, lasciatelo dire da chi ci ha passato la vita, prima su php, poi (aimhe') su javascript.

          Esempio: hai un servizio pornJson, che restituisce la lista delle pornostar, e delle categorie alle quali appartengono, ed ha un database di video di queste signorine. E' un servizio esterno, pronto funzionante. Lo puoi usare, e non preoccuparti di niente. Ti manca quindi solo di fare :

          1. Un sito in php (no javascript) che fa vedere la lista delle pornostar, selezionare/filtrare per categorie, e fa vedere il video.
          2. Un sito in React, che fa vedere la lista delle pornostar, selezionare/filtrare per categorie, e fa vedere il video.

          Uno di questi e' una 127, uno di questi e' una ferrari.
          Se, per qualche strano motivo, questo sito tramite passa-parola, inizia ad essere visitato da milioni di persone (non saprei mai perche' dovrebbero, ma mettiamo sia vero), uno dei 2, ti richiedera' 100 volte piu' risorse.

          ah, il sito si chiama tettepertutti.org !!!

          teflonundefined amigaunicornundefined 2 Replies Last reply
          0
          • Aethissundefined Aethiss

            @absc ma in realta' mi trovi d'accordo in larga parte eh, vengo da programmazione old school anche io. E' vero che i benchmark lasciano il tempo che trovano.

            solo una cosa, lasciatelo dire da chi ci ha passato la vita, prima su php, poi (aimhe') su javascript.

            Esempio: hai un servizio pornJson, che restituisce la lista delle pornostar, e delle categorie alle quali appartengono, ed ha un database di video di queste signorine. E' un servizio esterno, pronto funzionante. Lo puoi usare, e non preoccuparti di niente. Ti manca quindi solo di fare :

            1. Un sito in php (no javascript) che fa vedere la lista delle pornostar, selezionare/filtrare per categorie, e fa vedere il video.
            2. Un sito in React, che fa vedere la lista delle pornostar, selezionare/filtrare per categorie, e fa vedere il video.

            Uno di questi e' una 127, uno di questi e' una ferrari.
            Se, per qualche strano motivo, questo sito tramite passa-parola, inizia ad essere visitato da milioni di persone (non saprei mai perche' dovrebbero, ma mettiamo sia vero), uno dei 2, ti richiedera' 100 volte piu' risorse.

            ah, il sito si chiama tettepertutti.org !!!

            teflonundefined Offline
            teflonundefined Offline
            teflon
            wrote last edited by
            #31

            @Aethiss said in Parliamo di software 2: Dudeswave:

            ah, il sito si chiama tettepertutti.org

            maledetto, ci sono cascato 😁

            amigaunicornundefined 1 Reply Last reply
            0
            • Aethissundefined Aethiss

              @absc ma in realta' mi trovi d'accordo in larga parte eh, vengo da programmazione old school anche io. E' vero che i benchmark lasciano il tempo che trovano.

              solo una cosa, lasciatelo dire da chi ci ha passato la vita, prima su php, poi (aimhe') su javascript.

              Esempio: hai un servizio pornJson, che restituisce la lista delle pornostar, e delle categorie alle quali appartengono, ed ha un database di video di queste signorine. E' un servizio esterno, pronto funzionante. Lo puoi usare, e non preoccuparti di niente. Ti manca quindi solo di fare :

              1. Un sito in php (no javascript) che fa vedere la lista delle pornostar, selezionare/filtrare per categorie, e fa vedere il video.
              2. Un sito in React, che fa vedere la lista delle pornostar, selezionare/filtrare per categorie, e fa vedere il video.

              Uno di questi e' una 127, uno di questi e' una ferrari.
              Se, per qualche strano motivo, questo sito tramite passa-parola, inizia ad essere visitato da milioni di persone (non saprei mai perche' dovrebbero, ma mettiamo sia vero), uno dei 2, ti richiedera' 100 volte piu' risorse.

              ah, il sito si chiama tettepertutti.org !!!

              amigaunicornundefined Online
              amigaunicornundefined Online
              amigaunicorn
              Dudi
              wrote last edited by amigaunicorn
              #32

              @Aethiss

              guarda , tutto questo andava bene, diciamo, fino ai primi del 2000, quando si faceva il "sizing" dei server confrontando domanda e capacita'.

              Poi l'uomo bianco ha inventato delle cose.

              • I primi programmatori hanno cominciato a chiedersi, per esempio , quante volte cambia il numero di film che fa una pornostar in un anno. In un giorno. In una settimana. E cosi' prima e' arrivata la cache. Un meccanismo fantastico, quasi sconosciuto ai programmatori, che consente di aggiornare molto meno. Ma il programmatore di oggi non legge gli RFC, perche' mai dovrebbe? Non scrive documentazione, figuriamoci se la legge.

              • Poi sono arrivati quei bastardi degli architetti di sistema, e la cache ha cominciato ad evolversi , sino a raggiungere il concetto di "CDN".Content delivery Network. Credi davvero che ogni chiamata raggiunga il server di Facebook? Davvero aumenta il load di qualsiasicosa?

              • Poi e' arrivato il cloud, ed ecco che puo' addirittura succedere che usi solo le risorse che effettivamente consumi. (se lo fai bene). E puf, tutto questo discorso e' ridondante. Infine il cloud si e' evoluto nei vari SAAS, e oggi si, dell'efficienza del client non frega piu' niente a nessuno.

              • Il tutto si e' evoluto, per il settore mobile, in un "edge computing", per cui alla fine dei conti, il tuo server di traffico ne serve davvero poco. Anche quando usi il browser. A meno che tu non VOGLIA fare tutto da server, a carico tuo.

              Nel frattempo, pero', il problema era di trasformare in programmatori piu' incompetenti possibile, in modo da abbassare gli stipendi aumentando l'offerta. E cosi' abbiamo i programmatori javascript. Gente che faceva gli effetti speciali nella pagina web delle pizzerie, e adesso parla di UI/UX.

              E questo per un semplice motivo: perche' spostare il traffico da server a client ha senso solo se il traffico ti costa pochissimo. Ma tra client e server c'e' la rete, e almeno per il mondo mobile, una rete che costa molto. Quindi, abbassare il costo della capacita' dei server (che costa sempre meno) a spese del traffico mobile - che non e' decisamente economicissimo oggi - ha senso solo quando ha senso.

              Ho visto succedere questa cosa tante di quelle volte, ormai, partendo da Java , che non mi preoccupo piu'. Per via di due teoremi.

              • ogni tentativo di abbassare il reddito dei programmatori alza il reddito dei sistemisti
              • ogni tentativo di abbassare il reddito dei sistemisti alza il reddito dei programmatori

              E questi due teoremi sono inamovibili, per una semplice ragione: "informatica" significa che del software gira su dell'hardware. Quello che togli da una parte, va dall'altra.

              i fessi che continuano a proporre nuove tecnologie per tagliare i costi, insomma, non fanno altro che, nel lungo termine, alzarti il reddito, che tu sia un sistemista, o un programmatore. A spese di complicarti la vita al lavoro.


              “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

              Aethissundefined 1 Reply Last reply
              0
              • teflonundefined teflon

                @Aethiss said in Parliamo di software 2: Dudeswave:

                ah, il sito si chiama tettepertutti.org

                maledetto, ci sono cascato 😁

                amigaunicornundefined Online
                amigaunicornundefined Online
                amigaunicorn
                Dudi
                wrote last edited by
                #33

                @teflon said in Parliamo di software 2: Dudeswave:

                maledetto, ci sono cascat

                questi vanno:

                https://www.theyarehuge.com/

                https://www.bigboobspictures.com/busty/


                “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

                1 Reply Last reply
                0
                • amigaunicornundefined amigaunicorn

                  @Aethiss

                  guarda , tutto questo andava bene, diciamo, fino ai primi del 2000, quando si faceva il "sizing" dei server confrontando domanda e capacita'.

                  Poi l'uomo bianco ha inventato delle cose.

                  • I primi programmatori hanno cominciato a chiedersi, per esempio , quante volte cambia il numero di film che fa una pornostar in un anno. In un giorno. In una settimana. E cosi' prima e' arrivata la cache. Un meccanismo fantastico, quasi sconosciuto ai programmatori, che consente di aggiornare molto meno. Ma il programmatore di oggi non legge gli RFC, perche' mai dovrebbe? Non scrive documentazione, figuriamoci se la legge.

                  • Poi sono arrivati quei bastardi degli architetti di sistema, e la cache ha cominciato ad evolversi , sino a raggiungere il concetto di "CDN".Content delivery Network. Credi davvero che ogni chiamata raggiunga il server di Facebook? Davvero aumenta il load di qualsiasicosa?

                  • Poi e' arrivato il cloud, ed ecco che puo' addirittura succedere che usi solo le risorse che effettivamente consumi. (se lo fai bene). E puf, tutto questo discorso e' ridondante. Infine il cloud si e' evoluto nei vari SAAS, e oggi si, dell'efficienza del client non frega piu' niente a nessuno.

                  • Il tutto si e' evoluto, per il settore mobile, in un "edge computing", per cui alla fine dei conti, il tuo server di traffico ne serve davvero poco. Anche quando usi il browser. A meno che tu non VOGLIA fare tutto da server, a carico tuo.

                  Nel frattempo, pero', il problema era di trasformare in programmatori piu' incompetenti possibile, in modo da abbassare gli stipendi aumentando l'offerta. E cosi' abbiamo i programmatori javascript. Gente che faceva gli effetti speciali nella pagina web delle pizzerie, e adesso parla di UI/UX.

                  E questo per un semplice motivo: perche' spostare il traffico da server a client ha senso solo se il traffico ti costa pochissimo. Ma tra client e server c'e' la rete, e almeno per il mondo mobile, una rete che costa molto. Quindi, abbassare il costo della capacita' dei server (che costa sempre meno) a spese del traffico mobile - che non e' decisamente economicissimo oggi - ha senso solo quando ha senso.

                  Ho visto succedere questa cosa tante di quelle volte, ormai, partendo da Java , che non mi preoccupo piu'. Per via di due teoremi.

                  • ogni tentativo di abbassare il reddito dei programmatori alza il reddito dei sistemisti
                  • ogni tentativo di abbassare il reddito dei sistemisti alza il reddito dei programmatori

                  E questi due teoremi sono inamovibili, per una semplice ragione: "informatica" significa che del software gira su dell'hardware. Quello che togli da una parte, va dall'altra.

                  i fessi che continuano a proporre nuove tecnologie per tagliare i costi, insomma, non fanno altro che, nel lungo termine, alzarti il reddito, che tu sia un sistemista, o un programmatore. A spese di complicarti la vita al lavoro.

                  Aethissundefined Offline
                  Aethissundefined Offline
                  Aethiss
                  Nichilisti
                  wrote last edited by Aethiss
                  #34

                  @amigaunicorn said in Parliamo di software 2: Dudeswave:

                  I primi programmatori hanno cominciato a chiedersi, per esempio , quante volte cambia il numero di film che fa una pornostar in un anno. In un giorno. In una settimana. E cosi' prima e' arrivata la cache.

                  Sempre che si discuteva senza mettere in mezzo layer di cache o CDN.
                  E sempre volendo semplificare:

                  hai un sito di donnine con 24354332 pagine diverse.
                  Io vedo questa con 2 tette fantastiche, e voglio condividere con te la mia scoperta:
                  ti mando il link : www.tettextutti.org/categories/super-tette/sylvia-a-pecora-2/233442

                  Hai un sito in php, Che cache mandi ?
                  Hai un sito in React -> cache del bundle -> hey guarda sylvia !!

                  ripeto: sto semplificando. Eh si, io sono cloud addicted, so bene che le soluzioni architetturali sono molteplici.

                  Ma lato web "puro", una single page application con un qualsiasi framwork js, ad oggi, batte qualsiasi altro "sito web" fatto in perl/php/fra-cazzi-da-velletri-framework.

                  amigaunicornundefined 1 Reply Last reply
                  0
                  • Aethissundefined Aethiss

                    @amigaunicorn said in Parliamo di software 2: Dudeswave:

                    I primi programmatori hanno cominciato a chiedersi, per esempio , quante volte cambia il numero di film che fa una pornostar in un anno. In un giorno. In una settimana. E cosi' prima e' arrivata la cache.

                    Sempre che si discuteva senza mettere in mezzo layer di cache o CDN.
                    E sempre volendo semplificare:

                    hai un sito di donnine con 24354332 pagine diverse.
                    Io vedo questa con 2 tette fantastiche, e voglio condividere con te la mia scoperta:
                    ti mando il link : www.tettextutti.org/categories/super-tette/sylvia-a-pecora-2/233442

                    Hai un sito in php, Che cache mandi ?
                    Hai un sito in React -> cache del bundle -> hey guarda sylvia !!

                    ripeto: sto semplificando. Eh si, io sono cloud addicted, so bene che le soluzioni architetturali sono molteplici.

                    Ma lato web "puro", una single page application con un qualsiasi framwork js, ad oggi, batte qualsiasi altro "sito web" fatto in perl/php/fra-cazzi-da-velletri-framework.

                    amigaunicornundefined Online
                    amigaunicornundefined Online
                    amigaunicorn
                    Dudi
                    wrote last edited by amigaunicorn
                    #35

                    @Aethiss said in Parliamo di software 2: Dudeswave:

                    Hai un sito in php, Che cache mandi ?

                    che tu mi creda o meno, ci sono degli header, menzionati in un posto chiamato RFC, che se ne sbattono il cazzo di che linguaggio usi il tuo sito, e usando etag con i dovuti parametri, possono fare in modo che il tuo client metta in cache una risposta.

                    RFC 9110 – HTTP Semantics
                    RFC 9111 – HTTP Caching
                    RFC 9111 – HTTP Caching
                    RFC 9110 – HTTP Semantics
                    RFC 9110 – HTTP Semantics

                    per esempio

                    Cache-Control: max-age=3600, must-revalidate
                    ETag: "abc123"
                    Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
                    

                    non c'entra se a generare abc123 sia php o erlang, il tuo browser la mette in cache per un'ora. Poi , e solo poi, se la va a riprendere.

                    E no, non esiste un sitino in php, esiste il client ed esiste il server.


                    “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

                    Aethissundefined 1 Reply Last reply
                    0
                    • amigaunicornundefined amigaunicorn

                      @Aethiss said in Parliamo di software 2: Dudeswave:

                      Hai un sito in php, Che cache mandi ?

                      che tu mi creda o meno, ci sono degli header, menzionati in un posto chiamato RFC, che se ne sbattono il cazzo di che linguaggio usi il tuo sito, e usando etag con i dovuti parametri, possono fare in modo che il tuo client metta in cache una risposta.

                      RFC 9110 – HTTP Semantics
                      RFC 9111 – HTTP Caching
                      RFC 9111 – HTTP Caching
                      RFC 9110 – HTTP Semantics
                      RFC 9110 – HTTP Semantics

                      per esempio

                      Cache-Control: max-age=3600, must-revalidate
                      ETag: "abc123"
                      Last-Modified: Wed, 21 Oct 2015 07:28:00 GMT
                      

                      non c'entra se a generare abc123 sia php o erlang, il tuo browser la mette in cache per un'ora. Poi , e solo poi, se la va a riprendere.

                      E no, non esiste un sitino in php, esiste il client ed esiste il server.

                      Aethissundefined Offline
                      Aethissundefined Offline
                      Aethiss
                      Nichilisti
                      wrote last edited by Aethiss
                      #36

                      @amigaunicorn

                      Gia' Parliamo di 2 livelli di cache diversi. Tu parli a livello browser, io ti parlo di layer di cache a livello infrastruttura. Ma Ignoriamo il mio, e prendiamo il TUO esempio, partendo dal mio.

                      • mio browser: "hey, guarda che tette!! ora mando il link ai miei amici !!"
                      • browser amico 1 (App React): click -> bundle cachato -> "che tette !!"
                      • browser amico 2 (App php): click -> non ha cache di questa pagina, e non potrebbe (EDIT: se non qualche tag "abc123") -> chiama server -> server fa suo lavoro -> client -> tette.
                      amigaunicornundefined 1 Reply Last reply
                      0
                      • Aethissundefined Aethiss

                        @amigaunicorn

                        Gia' Parliamo di 2 livelli di cache diversi. Tu parli a livello browser, io ti parlo di layer di cache a livello infrastruttura. Ma Ignoriamo il mio, e prendiamo il TUO esempio, partendo dal mio.

                        • mio browser: "hey, guarda che tette!! ora mando il link ai miei amici !!"
                        • browser amico 1 (App React): click -> bundle cachato -> "che tette !!"
                        • browser amico 2 (App php): click -> non ha cache di questa pagina, e non potrebbe (EDIT: se non qualche tag "abc123") -> chiama server -> server fa suo lavoro -> client -> tette.
                        amigaunicornundefined Online
                        amigaunicornundefined Online
                        amigaunicorn
                        Dudi
                        wrote last edited by
                        #37

                        @Aethiss

                        siamo davvero nel 2025 a discutere del fatto che la cache funziona SOLO dopo la prima volta? E' ovvio che non puoi evitare la prima chiamata.

                        Ma la foto di tette non cambia, ed e' contenuto statico. Finira' in CDN. Che bisogno hai di programmare ad hoc un client, solo perche'.... boh.


                        “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

                        Aethissundefined 2 Replies Last reply
                        0
                        • amigaunicornundefined amigaunicorn

                          @Aethiss

                          siamo davvero nel 2025 a discutere del fatto che la cache funziona SOLO dopo la prima volta? E' ovvio che non puoi evitare la prima chiamata.

                          Ma la foto di tette non cambia, ed e' contenuto statico. Finira' in CDN. Che bisogno hai di programmare ad hoc un client, solo perche'.... boh.

                          Aethissundefined Offline
                          Aethissundefined Offline
                          Aethiss
                          Nichilisti
                          wrote last edited by
                          #38

                          @amigaunicorn

                          Pero' sembriamo ubriachi che si accompagnano a casa a vicenda 🙂
                          Assumendo che siamo 2 persone le quali tutti e 2 sanno di che parlano, e SEMPLIFICANDO (ignoriamo CDN etc...)

                          App in React:

                          • hey che sito e' questo ? click -> chiamo server che restituisce bundle -> browser mette in cache il bundle -> Tette&Culi via PornJsonService
                          • figo, voglio Tette ! click -> bundle cachato -> tette via PornJsonService
                          • mah, forse preferivo culi ! click -> bundle cachato -> culi ....

                          App in quello che vuoi (No SPA/ No Js)

                          • hey che sito e' questo ? click -> chiamo server -> server contatta PornJsonService -> restituisce al client -> cache RFC -> Tette&Culi
                          • figo, voglio Tette ! click -> chiamo server -> server contatta PornJsonService -> restituisce al client che sa gia' che deve renderizzare "abc123" (irrilevante) -> Tette
                          • mah, forse preferico culi ! click -> come sopra -> culi ...

                          la prima app non ci parla piu' con il server, perche' dovrebbe ? parla con il servizio che deve fornire i dati (culi e tette)
                          la seconda app fa parlare il server ad ogni chiamata con il servizio che deve fornire dati di culi e tette.

                          puoi cachare "abc", "123" e quello che vuoi, ma i contenuti sono quelli rilevanti, che sara' il server a fornire. Ad ogni chiamata.

                          amigaunicornundefined abscundefined 2 Replies Last reply
                          0
                          • amigaunicornundefined amigaunicorn

                            @Aethiss

                            siamo davvero nel 2025 a discutere del fatto che la cache funziona SOLO dopo la prima volta? E' ovvio che non puoi evitare la prima chiamata.

                            Ma la foto di tette non cambia, ed e' contenuto statico. Finira' in CDN. Che bisogno hai di programmare ad hoc un client, solo perche'.... boh.

                            Aethissundefined Offline
                            Aethissundefined Offline
                            Aethiss
                            Nichilisti
                            wrote last edited by
                            #39

                            @amigaunicorn

                            Questo stesso servizio che hai messo su :

                            Screenshot 2025-08-06 at 09.26.01.png

                            usa Vue.js !

                            Se vuoi puoi anche mettere su il buon vecchio https://www.phpbb.com/
                            Fanno lo stesso eh. Secondo me e' come usare una fiat 127 (che per carita' andra'), rispetto ad una macchina moderna. 😉

                            amigaunicornundefined 1 Reply Last reply
                            0
                            • Aethissundefined Aethiss

                              @amigaunicorn

                              Pero' sembriamo ubriachi che si accompagnano a casa a vicenda 🙂
                              Assumendo che siamo 2 persone le quali tutti e 2 sanno di che parlano, e SEMPLIFICANDO (ignoriamo CDN etc...)

                              App in React:

                              • hey che sito e' questo ? click -> chiamo server che restituisce bundle -> browser mette in cache il bundle -> Tette&Culi via PornJsonService
                              • figo, voglio Tette ! click -> bundle cachato -> tette via PornJsonService
                              • mah, forse preferivo culi ! click -> bundle cachato -> culi ....

                              App in quello che vuoi (No SPA/ No Js)

                              • hey che sito e' questo ? click -> chiamo server -> server contatta PornJsonService -> restituisce al client -> cache RFC -> Tette&Culi
                              • figo, voglio Tette ! click -> chiamo server -> server contatta PornJsonService -> restituisce al client che sa gia' che deve renderizzare "abc123" (irrilevante) -> Tette
                              • mah, forse preferico culi ! click -> come sopra -> culi ...

                              la prima app non ci parla piu' con il server, perche' dovrebbe ? parla con il servizio che deve fornire i dati (culi e tette)
                              la seconda app fa parlare il server ad ogni chiamata con il servizio che deve fornire dati di culi e tette.

                              puoi cachare "abc", "123" e quello che vuoi, ma i contenuti sono quelli rilevanti, che sara' il server a fornire. Ad ogni chiamata.

                              amigaunicornundefined Online
                              amigaunicornundefined Online
                              amigaunicorn
                              Dudi
                              wrote last edited by
                              #40

                              @Aethiss said in Parliamo di software 2: Dudeswave:

                              puoi cachare "abc", "123" e quello che vuoi, ma i contenuti sono quelli rilevanti, che sara' il server a fornire. Ad ogni chiamata.

                              solo se i contenuti cambiano tra una chiamata e l'altra. Altrimenti, anche escludendo le CDN, ci pensa la cache del frontend, bigIP o quant'altro. Ma se c'erano header di cache, succedera' ogni ora, non ad ogni refresh.

                              abc123 e' il nome dell'etag. Un tempo indicava l' inode del file statico sul server, ora non piu'.

                              E non c'e' affatto bisogno di rigenerare un contenuto statico, mi spiace. Se non cambia ad ogni click, puoi servirlo da una cache, anche su disco, se proprio detesti le CDN. Quella chiamata non arriverebbe mai al server, dove sta la business logic, si fermerebbe al reverse proxy di frontend.

                              Adesso mi dirai "ignora anche il proxy di frontend e gli RFC.

                              E allora, il tuo problema si esprime con:

                              siamo nel 1984, quando non esistevano CDN, non esistevano frontend proxy, e quando non esistevano gli header HTTP , cioe' nemmeno HTTP.Il nostro client si connette, usando un modem 28800 BAUD, alla BBS, e deve scaricare il file tette.zip dalla libreria "cose zozze". Come faccio una app react?"

                              E la risposta sara' "usa QWK con rz/sz".

                              Ma ripeto, nel 2025, avendo le CDN, avendo il cloud, avendo i proxy di frontend, avendo ottimizzatori del TCP come BigIP, avendo gli header cache, l'idea che tu migliori la vita al server solo perche' usi react mi fa alquanto ridere, onestamente.

                              Header HTTP Funzione Livello OSI Note
                              Content-Type, Content-Encoding, Content-Language, Content-Transfer-Encoding Descrizione del formato e codifica del contenuto 6 – Presentazione Gestione di formato, lingua e codifica dei dati
                              Content-Length, Transfer-Encoding Gestione e trasformazione del corpo del messaggio 6 – Presentazione Controllano come viene interpretato il payload
                              Authorization, WWW-Authenticate Autenticazione, avvio di sessione logica 5 – Sessione Stabiliscono un contesto utente
                              Set-Cookie, Cookie Persistenza della sessione utente 5 – Sessione (concettuale) Permettono sessioni, ma sono header applicativi
                              Connection, Keep-Alive Gestione della persistenza della connessione TCP 5 – Sessione Controllano se tenere aperta la connessione TCP
                              Host, Referer, User-Agent Informazioni contestuali sulla richiesta 7 – Applicazione Header informativi, propri di HTTP
                              Cache-Control, ETag, Expires, Last-Modified Gestione semantica della cache 7 – Applicazione Agiscono solo a livello logico HTTP
                              Accept, Accept-Encoding, Accept-Language Preferenze sul formato della risposta 6 – Presentazione Il client dichiara come preferisce ricevere i dati
                              Upgrade, Sec-WebSocket-Key, Sec-WebSocket-Accept Negoziazione per cambio protocollo (es. WebSocket) 5 – Sessione Implicano transizione di protocollo su TCP
                              Date, Server, Via Metadati e diagnostica 7 – Applicazione Informazioni accessorie

                              “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

                              Aethissundefined 1 Reply Last reply
                              0
                              • Aethissundefined Aethiss

                                @amigaunicorn

                                Questo stesso servizio che hai messo su :

                                Screenshot 2025-08-06 at 09.26.01.png

                                usa Vue.js !

                                Se vuoi puoi anche mettere su il buon vecchio https://www.phpbb.com/
                                Fanno lo stesso eh. Secondo me e' come usare una fiat 127 (che per carita' andra'), rispetto ad una macchina moderna. 😉

                                amigaunicornundefined Online
                                amigaunicornundefined Online
                                amigaunicorn
                                Dudi
                                wrote last edited by amigaunicorn
                                #41

                                @Aethiss me ne rendo conto. E sto scancherando non poco. Ma, se solo metto un piccolo nginx con cache di fronte, vedo che il traffico sul backend cala drasticamente, specialmente alla voce "Ragazze sgargianti".

                                Siamo di nuovo li'. ALla fine non e' VUE che fa calare il traffico....ne' l'uso della CPU.


                                “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

                                1 Reply Last reply
                                0
                                • amigaunicornundefined amigaunicorn

                                  @Aethiss said in Parliamo di software 2: Dudeswave:

                                  puoi cachare "abc", "123" e quello che vuoi, ma i contenuti sono quelli rilevanti, che sara' il server a fornire. Ad ogni chiamata.

                                  solo se i contenuti cambiano tra una chiamata e l'altra. Altrimenti, anche escludendo le CDN, ci pensa la cache del frontend, bigIP o quant'altro. Ma se c'erano header di cache, succedera' ogni ora, non ad ogni refresh.

                                  abc123 e' il nome dell'etag. Un tempo indicava l' inode del file statico sul server, ora non piu'.

                                  E non c'e' affatto bisogno di rigenerare un contenuto statico, mi spiace. Se non cambia ad ogni click, puoi servirlo da una cache, anche su disco, se proprio detesti le CDN. Quella chiamata non arriverebbe mai al server, dove sta la business logic, si fermerebbe al reverse proxy di frontend.

                                  Adesso mi dirai "ignora anche il proxy di frontend e gli RFC.

                                  E allora, il tuo problema si esprime con:

                                  siamo nel 1984, quando non esistevano CDN, non esistevano frontend proxy, e quando non esistevano gli header HTTP , cioe' nemmeno HTTP.Il nostro client si connette, usando un modem 28800 BAUD, alla BBS, e deve scaricare il file tette.zip dalla libreria "cose zozze". Come faccio una app react?"

                                  E la risposta sara' "usa QWK con rz/sz".

                                  Ma ripeto, nel 2025, avendo le CDN, avendo il cloud, avendo i proxy di frontend, avendo ottimizzatori del TCP come BigIP, avendo gli header cache, l'idea che tu migliori la vita al server solo perche' usi react mi fa alquanto ridere, onestamente.

                                  Header HTTP Funzione Livello OSI Note
                                  Content-Type, Content-Encoding, Content-Language, Content-Transfer-Encoding Descrizione del formato e codifica del contenuto 6 – Presentazione Gestione di formato, lingua e codifica dei dati
                                  Content-Length, Transfer-Encoding Gestione e trasformazione del corpo del messaggio 6 – Presentazione Controllano come viene interpretato il payload
                                  Authorization, WWW-Authenticate Autenticazione, avvio di sessione logica 5 – Sessione Stabiliscono un contesto utente
                                  Set-Cookie, Cookie Persistenza della sessione utente 5 – Sessione (concettuale) Permettono sessioni, ma sono header applicativi
                                  Connection, Keep-Alive Gestione della persistenza della connessione TCP 5 – Sessione Controllano se tenere aperta la connessione TCP
                                  Host, Referer, User-Agent Informazioni contestuali sulla richiesta 7 – Applicazione Header informativi, propri di HTTP
                                  Cache-Control, ETag, Expires, Last-Modified Gestione semantica della cache 7 – Applicazione Agiscono solo a livello logico HTTP
                                  Accept, Accept-Encoding, Accept-Language Preferenze sul formato della risposta 6 – Presentazione Il client dichiara come preferisce ricevere i dati
                                  Upgrade, Sec-WebSocket-Key, Sec-WebSocket-Accept Negoziazione per cambio protocollo (es. WebSocket) 5 – Sessione Implicano transizione di protocollo su TCP
                                  Date, Server, Via Metadati e diagnostica 7 – Applicazione Informazioni accessorie
                                  Aethissundefined Offline
                                  Aethissundefined Offline
                                  Aethiss
                                  Nichilisti
                                  wrote last edited by
                                  #42

                                  @amigaunicorn said in Parliamo di software 2: Dudeswave:

                                  solo se i contenuti cambiano tra una chiamata e l'altra. Altrimenti, anche escludendo le CDN, ci pensa la cache del frontend, bigIP o quant'altro. Ma se c'erano header di cache, succedera' ogni ora, non ad ogni refresh.

                                  Fermo restando che mi trovi d'accordo. Con un infrastruttura fatta bene, il linguaggio con cui scrivi il sito diventa sempre piu' irrilevante (tranne per il fatto che scrivi 1/3 del codice e produci il doppio, se ad esempio volessimo comparare proprio il codice React vs Php [ad esempio!!]).

                                  C'e' solo un appunto, e cioe' dove ha una lacuna la tua risposta (forse non hai capito la mia), e cioe' :
                                  Con una single page application, me ne infischio se non ho in cache i dati anche se accedo ad una pagina -> sezione -> sottoSezione per la prima volta.

                                  Il bundle e' cachato, non arrivo nemmeno al server. cosa che con un qualsiasi altro linguaggio non posso fare.

                                  amigaunicornundefined abscundefined 2 Replies Last reply
                                  0
                                  • Aethissundefined Aethiss

                                    @amigaunicorn said in Parliamo di software 2: Dudeswave:

                                    solo se i contenuti cambiano tra una chiamata e l'altra. Altrimenti, anche escludendo le CDN, ci pensa la cache del frontend, bigIP o quant'altro. Ma se c'erano header di cache, succedera' ogni ora, non ad ogni refresh.

                                    Fermo restando che mi trovi d'accordo. Con un infrastruttura fatta bene, il linguaggio con cui scrivi il sito diventa sempre piu' irrilevante (tranne per il fatto che scrivi 1/3 del codice e produci il doppio, se ad esempio volessimo comparare proprio il codice React vs Php [ad esempio!!]).

                                    C'e' solo un appunto, e cioe' dove ha una lacuna la tua risposta (forse non hai capito la mia), e cioe' :
                                    Con una single page application, me ne infischio se non ho in cache i dati anche se accedo ad una pagina -> sezione -> sottoSezione per la prima volta.

                                    Il bundle e' cachato, non arrivo nemmeno al server. cosa che con un qualsiasi altro linguaggio non posso fare.

                                    amigaunicornundefined Online
                                    amigaunicornundefined Online
                                    amigaunicorn
                                    Dudi
                                    wrote last edited by amigaunicorn
                                    #43

                                    @Aethiss

                                    certo che la metti in cache, te lo fa una CDN, o te lo fa il reverse proxy che mette in cache i contenuti static, ed e' qui il punto.

                                    Lo so che mentre i programmatori stanno chiusi nella loro stanzetta e testano il codice su localhost , o su un sistema di sviluppo che non ha niente in mezzo - perche' e' vero, testare coin le cache torna scomodo - si creano il loro mondo di favole ove l'infrastruttura e' trasparente e neutrale.

                                    Ma quando esci dal mondo di favole, scopri che persino il tuo bundle, almeno in parte, lo aggiorni mediante una CDN, e che non passa quasi nessuna differenza - se non per i costi e le latenze della rete mobile - averlo in locale o scaricarlo dalla cdn di turno. Puo' fare differenza di costi sulla rete mobile, se proprio vogliamo, ma sulla CPU dei server, e' praticamente invisibile. I frontend cacheranno con un bel "Vary: User-Agent" e verranno salvati su disco per essere messi in cache.

                                    Tra qualche giorno, appena avro' testato a dovere, mettero' un cache proxy davanti a nodeBB, non so ancora se usero' varnish o nginx, se non squid, e praticamente scaricherai i contenuti solo se sono cambiati. Il resto te lo fornira' come contenuto statico un server.

                                    E servire un contenuto come contenuto statico e' molto diverso da generare il contenuto, che normalmente richiede CPU.

                                    Ripeto, spesso chi fa il codice e' convinto di avere il nulla piatto , trasparente e neutrale tra client e server. Invece, oggi e' letteralmente impossibile farlo, perche' se anche ignori la cache, ti becchi un bel 301, 30x, o simili, e vieni rediretto ad una CDN.

                                    Da quando e' arrivato il mondo mobile, con modelli di costo a consumo, non esistono piu' connessioni trasparenti E neutre.

                                    Il vantaggio che hai avendo il bundle sul telefono, spesso, non e' nemmeno misurabile sui server rispetto al browser.

                                    Ripeto: in situazioni reali. Su localhost (AKA "works on my laptop") o sulla rete di test (AKA: please, operations, no cache we need testing) , ovviamente e' come dici tu. Solo che non e' la realta' in cui vivi quando sei in produzione.

                                    Il problema e' che i developers tendono a creare un mondo di fiabe nella loro stanzetta, e finiscono col meritarsi questo:

                                    https://varnish-cache.org/docs/trunk/phk/notes.html


                                    “Il deuterio è come il Grana Padano”. (J.R.Oppenheimer)

                                    Aethissundefined 1 Reply Last reply
                                    0
                                    • Aethissundefined Aethiss

                                      @amigaunicorn

                                      Pero' sembriamo ubriachi che si accompagnano a casa a vicenda 🙂
                                      Assumendo che siamo 2 persone le quali tutti e 2 sanno di che parlano, e SEMPLIFICANDO (ignoriamo CDN etc...)

                                      App in React:

                                      • hey che sito e' questo ? click -> chiamo server che restituisce bundle -> browser mette in cache il bundle -> Tette&Culi via PornJsonService
                                      • figo, voglio Tette ! click -> bundle cachato -> tette via PornJsonService
                                      • mah, forse preferivo culi ! click -> bundle cachato -> culi ....

                                      App in quello che vuoi (No SPA/ No Js)

                                      • hey che sito e' questo ? click -> chiamo server -> server contatta PornJsonService -> restituisce al client -> cache RFC -> Tette&Culi
                                      • figo, voglio Tette ! click -> chiamo server -> server contatta PornJsonService -> restituisce al client che sa gia' che deve renderizzare "abc123" (irrilevante) -> Tette
                                      • mah, forse preferico culi ! click -> come sopra -> culi ...

                                      la prima app non ci parla piu' con il server, perche' dovrebbe ? parla con il servizio che deve fornire i dati (culi e tette)
                                      la seconda app fa parlare il server ad ogni chiamata con il servizio che deve fornire dati di culi e tette.

                                      puoi cachare "abc", "123" e quello che vuoi, ma i contenuti sono quelli rilevanti, che sara' il server a fornire. Ad ogni chiamata.

                                      abscundefined Online
                                      abscundefined Online
                                      absc
                                      Dudi
                                      wrote last edited by
                                      #44

                                      @Aethiss

                                      Ehm... te davvero consideri "server" e "servizio che fornisce i dati" come due cose diverse?

                                      Perché quello che scrivi, in informatica, non ha senso.

                                      Un'ascia e' per sempre

                                      Aethissundefined 1 Reply Last reply
                                      0
                                      • Aethissundefined Aethiss

                                        @amigaunicorn said in Parliamo di software 2: Dudeswave:

                                        solo se i contenuti cambiano tra una chiamata e l'altra. Altrimenti, anche escludendo le CDN, ci pensa la cache del frontend, bigIP o quant'altro. Ma se c'erano header di cache, succedera' ogni ora, non ad ogni refresh.

                                        Fermo restando che mi trovi d'accordo. Con un infrastruttura fatta bene, il linguaggio con cui scrivi il sito diventa sempre piu' irrilevante (tranne per il fatto che scrivi 1/3 del codice e produci il doppio, se ad esempio volessimo comparare proprio il codice React vs Php [ad esempio!!]).

                                        C'e' solo un appunto, e cioe' dove ha una lacuna la tua risposta (forse non hai capito la mia), e cioe' :
                                        Con una single page application, me ne infischio se non ho in cache i dati anche se accedo ad una pagina -> sezione -> sottoSezione per la prima volta.

                                        Il bundle e' cachato, non arrivo nemmeno al server. cosa che con un qualsiasi altro linguaggio non posso fare.

                                        abscundefined Online
                                        abscundefined Online
                                        absc
                                        Dudi
                                        wrote last edited by absc
                                        #45

                                        @Aethiss

                                        In qualsiasi altro linguaggio non lo puoi fare per un motivo semplice. Un web browser capisce solo Javascript.

                                        Esticazzi, ce lo scriviamo?

                                        Se il browser potesse interpretare ed eseguire php/go/altro sarebbe un paragone che potresti fare, ma non puoi. Di nuovo paragoni fischi con fiaschi.

                                        Ed ha ragione @amigaunicorn riguardo il caching. Non ha senso appesantire l'esperienza dell'utente (sí, non mi venire a raccontare che le webapp sono belle ed efficenti, ho un pc di dieci anni fa), quando le CDN fanno già il lavoro di alleggerire i tuoi server.

                                        Un'ascia e' per sempre

                                        1 Reply Last reply
                                        0
                                        • abscundefined absc

                                          @Aethiss

                                          Ehm... te davvero consideri "server" e "servizio che fornisce i dati" come due cose diverse?

                                          Perché quello che scrivi, in informatica, non ha senso.

                                          Aethissundefined Offline
                                          Aethissundefined Offline
                                          Aethiss
                                          Nichilisti
                                          wrote last edited by
                                          #46

                                          @absc said in Parliamo di software 2: Dudeswave:

                                          Ehm... te davvero consideri "server" e "servizio che fornisce i dati" come due cose diverse?

                                          Perché quello che scrivi, in informatica, non ha senso.

                                          Era un esempio

                                          Client, Dove hai il web-server (chiamala macchina, Vm o quello che vuoi), altro microservizio.
                                          Su, e' ovvio che si semplifica in un forum.

                                          abscundefined 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • 1
                                          • 2
                                          • 3
                                          • 4
                                          • Login

                                          • Don't have an account? Register

                                          • First post
                                            Last post