Skip to content

Instantly share code, notes, and snippets.

View salvatorecapolupo's full-sized avatar

Salvatore Capolupo salvatorecapolupo

View GitHub Profile
import java.util.stream.IntStream;

public class FizzBuzz {
    public static void main(String[] args) {
        IntStream.rangeClosed(1, 100)
            .mapToObj(i -> (i % 15 == 0) ? "FizzBuzz" : (i % 3 == 0) ? "Fizz" : (i % 5 == 0) ? "Buzz" : i)
            .forEach(System.out::println);
    }
}
@salvatorecapolupo
salvatorecapolupo / esercizi-tpsit.md
Last active March 7, 2026 07:40
Like a pro: from C++ to Javascript

10 esercizi strutturati in ordine di difficoltà crescente, focalizzati sulla manipolazione di variabili, array e matrici (array 2D).

In due linguaggi diversi.

In sintesi, C++ e JavaScript differiscono profondamente per tipologia, esecuzione e gestione della memoria: il C++ è un linguaggio compilato, a tipizzazione statica (il tipo di variabile deve essere dichiarato a priori), che offre un controllo manuale e a basso livello della memoria (tramite puntatori) ed è progettato per applicazioni di sistema ad altissime prestazioni; JavaScript, al contrario, è un linguaggio interpretato (o compilato JIT, Just In Time) a tipizzazione dinamica (una variabile può cambiare tipo durante l'esecuzione),

// 1. the clock
setcpm(120)
s("casio").n("<1 3>")
// 2. order is not relevant
s("wind").n("<0 1>")
// same as
//n("<0 1>").s("wind")
//3. basic synthwave
@salvatorecapolupo
salvatorecapolupo / thread_2.md
Created March 3, 2026 06:38
Thread in Java - Fonte: edutecnica.it

PARTE 1: Le Basi (Teoria)

1. Estendere la classe Thread

Il modo più classico (anche se rigido) per creare un processo parallelo.

class MioThread extends Thread {
    public void run() {
        System.out.println("1. Ciao dal thread: " + getName());

1. Architettura di Rete e Livello Fisico (L1)

  • Mezzi Trasmissivi:

  • TIA/EIA-568: Lo standard per il cablaggio strutturato in edifici commerciali (Cat 5e, 6, 6a, 7, 8).

  • ISO/IEC 11801: Lo standard internazionale equivalente per il cablaggio generico.

  • Ethernet Avanzato:

  • IEEE 802.3bz: 2.5G e 5G Ethernet su cavi Cat5e/6.

  • IEEE 802.3af/at/bt: Power over Ethernet (PoE/PoE+/PoE++).

Pre requisiti

Ecco la lista delle linee di comando più comuni per Python e la gestione delle librerie (pip), utile per i tuoi progetti di Sistemi e Reti:

  • python --version
  • python script.py
  • python -m venv venv
  • source venv/bin/activate
  • venv\Scripts\activate
  • pip install nome_libreria

Come funziona davvero un LLM (Large Language Model)

Capitolo 1: La Macchina Ferma

  • 1.1 Cosa (non ) è un LLM

Benvenuti in questa dispensa. Prima di sporcarci le mani con il codice, dobbiamo chiarire un equivoco potenziale. Ovvero: Un LLM non è un motore di ricerca! E nemmeno tuo cugino bravo col computer.

Traccia link

1. Analisi dello Stato di Fatto (Prima Parte)

Obiettivo: Comprensione dell'infrastruttura esistente.

  • Esercizio 1.1 - Schema Logico Attuale: Sulla base dei dati forniti (15 postazioni in segreteria e 10 laboratori didattici), disegna lo schema logico della rete attuale. Rappresenta chiaramente la separazione fisica tra la "rete amministrativa" (ADSL 7 Mb/s) e la "rete didattica" (ADSL 24 Mb/s).

  • Esercizio 1.2 - Analisi dei Vincoli: Elenca i limiti dell'attuale configurazione hardware (es. apparati a 100 Mb/s) rispetto alle nuove esigenze di didattica multimediale e streaming richieste dalla scuola.

Traccia esame di stato sistemi e reti: link

1. Analisi del Caso e Dimensionamento Rete (Prima Parte)

Obiettivo: Pianificazione dell'indirizzamento IP e analisi dei requisiti.

  • Esercizio 1.1 - Schema di Rete: Progetta e disegna uno schema grafico che rappresenti l'infrastruttura regionale in fibra. Lo schema deve includere il Data Center centrale, le strutture pubbliche pre-esistenti e l'integrazione delle nuove strutture private convenzionate.

  • Esercizio 1.2 - Piano di Indirizzamento: Data la sottorete assegnata , calcola e definisci un piano di sottoreti (subnetting) che possa ospitare circa 2000 strutture sanitarie, garantendo ad ognuna almeno 8 indirizzi IP. Prevedi un margine per incrementi futuri.

@salvatorecapolupo
salvatorecapolupo / thread_1.md
Created February 17, 2026 07:03
Problema dei 5 filosofi a cena

Parte 1: Base - Creare e avviare un Thread

In Java, il modo più semplice per creare un thread è estendere la classe Thread e sovrascrivere il metodo run().

Concetto chiave: start() avvia un nuovo flusso di esecuzione parallelo, mentre chiamare direttamente run() eseguirebbe il codice nel thread principale (sequenziale).

// 1. Definiamo un task semplice
class SalutoTask extends Thread {
    private String nome;