I router

Un router è un dispositivo di rete che connette diversi segmenti di rete (es. una LAN interna a Internet) e indirizza il traffico di dati tra di essi. Funziona a livello Layer 3 (Network Layer) del modello OSI, gestendo indirizzi IP nei vari pacchetti e le tabelle di routing. E’ facile confondersi sulla sua necessità … Leggi tutto

Perché usare attributi privati e metodi di accesso nella OOP

logo java

Uno dei concetti più strani per chi approccia alla programmazione orientata agli oggetti OOP è quello dell’incapsulamento. Questo prevede la dichiarazione degli attributi privati e la conseguente modifica o reperimento del contenuto di tali attributi solo passando per i metodi di accesso set/get. Ma perché questa è una soluzione vincente? Non sarebbe meglio inserire attributi … Leggi tutto

Il livello di rete e gli indirizzi IP

sistemi-reti

Il modello OSI resta un riferimento didattico fondamentale per comprendere come i dati viaggiano nelle reti. In questo articolo esploreremo in dettaglio il terzo livello, il livello di rete, con particolare attenzione al ruolo degli indirizzi IP, al motivo per cui il livello 2 (data link) non basta più da solo, e come l’evoluzione del … Leggi tutto

Server/Client socket TODO in Python

python-logo

Un classico esercizio che anche qui sul sito abbiamo visto in molti linguaggi e tecnologie. Questa volta lo affrontiamo in python utilizzando socket e dinamica client/server. Non teniamo conto di multi client con concorrenza ma vogliamo realizzare un client capace di inviare ad un server una sorta di lista delle cose da fare specificando un … Leggi tutto

Concetti di programmazione multiprocesso

I processi Sui nostri pc siamo abituati ad installare diversi software o programmi. Questi rimangono sul disco fisso sopiti finche non decidiamo di eseguirli. Quando esegui un programma sul computer, questo non è più solo un file statico su disco, ma parte di esso o tutto viene spostato nella ram ovvero la memoria di lavoro: … Leggi tutto

Annotazioni di tipo in Python

python

Python è un linguaggio molto facile da apprendere anche per i non informatici, grazie alla pulizia della sua sintassi, alla non tipizzazione dei dati e all’eliminazione di molti elementi ostici come punti e virgola, tipi di ritorno espliciti, ecc. In realtà, quando facciamo scripting rapido, queste caratteristiche sono molto desiderabili, ma se ci imbarchiamo in … Leggi tutto

Introduzione alla OOP in Python

python

Questo articolo vuole introdurre ai pochi elementi fondamentali per utilizzare la OOP in Python per frammenti di codice prevalentemente pensati per i corsi di informatica di scuola superiore. Vi rimando a guide più articolate per conoscere dettagli in modo più specifico. La OOP in Python Python nasce come linguaggio di scripting, per sviluppi spesso semplici … Leggi tutto

Concorrenza e parallelismo per la gestione delle risorse

In questo articolo cerchiamo di fare un piccolo riassunto di concetti fondamentali per comprendere la programmazione concorrente, argomento tipico delle classi quarte dell’ITT Informatica e la materia Tecnologie e progettazione di sistemi informatici. Risorse Nel contesto di sistemi concorrenti e paralleli, una risorsa è qualsiasi componente (hardware o software) limitato, necessario all’esecuzione di un processo … Leggi tutto

Server/Client socket prenotazione in python

python-logo

Vogliamo realizzare un piccolo servizio di prenotazione posti teatro/cinema/bus usando una connessione socket client/server. Per il momento tralasciamo considerazioni sulla concorrenza delle risorse e la contesa tra più client. Il codice lo scriviamo asciutto e decisamente semplificato senza uso di try/catch ed elementi di validazione/correzione accurati. L’esercizio è collegato a quello visto in Server/Client Ping … Leggi tutto

Server/Client Ping Pong in Python

python-logo

Vogliamo realizzare un primo semplice esempio di applicativo di rete client/server che simuli una sorta di botta e risposta tra le due parti: il client invia un saluti “ping”, il server in ascolto legge il saluti e risponde “pong”. Sfruttiamo la tecnologia dei socket e il linguaggio Python. Comunicazione in rete L’esercizio rientra nello studio … Leggi tutto