Categoria: programmazione

gRPC e Protocol Buffers: una introduzione.

gRPC architecture

gRPC è una tecnologia nata in Google che astrae il concetto di classe immergendolo in quello di cloud: supponiamo che il nostro progetto locale sfrutti una classe Figura che realizza una figura piana della geometria. Chi l’ha detto che la classe debba trovarsi sullo stesso PC in cui stiamo sviluppando il nostro progetto? Protocol Buffers …

Continua a leggere

Port forwarding con Docker

docker network layout

La mappatura delle porte Docker, nota anche come port forwarding , è una tecnica utilizzata per esporre i servizi di rete – che sono in esecuzione all’interno di un contenitore Docker – verso l’host, verso altri contenitori Docker dello stesso host o verso altri host o dispositivi di rete. Il port forwarding consente di mappare una porta specifica …

Continua a leggere

Pillole Git: creare un branch per una nuova attività

Git: creare branch per ogni microattività

Creare un nuovo branch nel repository Git viene naturale se pensiamo che qualsiasi cosa facciamo al codice possa sporcare il branch master (o quello in cui stiamo lavorando) . Per manetenere il branch attivo pulito possiamo quindi creare una nuova derivazione dove possiamo fare quello che vogliamo senza interferire con il lavoro degli altri sviluppatori. …

Continua a leggere

Python Challenges: mutable objects

Più che una challenge, questo è un’approfondimento su una peculiarità di Python: la mutabilità nei tipi di variabili. In Python i tipi di dato si dividono in mutabili e immutabili. Immutabile non significa che non si può cambiare, come suggerirebbe la parola (a mio modestissimo parere la scelta del termine è molto infelice), significa invece …

Continua a leggere

Applicare una patch

Tux patch

Dimentichiamoci per un attimo che esista Git e, più in generale, i software di gestione del versionamento. All’origine dei tempi, come si applicavano le modifiche ai file quando si faceva sviluppo in team? Ovviamente quanto segue è comunque utile e può essere utilizzato in sistuazioni in cui dobbiamo emendare singoli file. Unix ha tuttora, compreso …

Continua a leggere

Convertire xlsx in csv

Convert XLS to CSV

Per soli utenti Linux, in due righe di comando: Fine. Riferimenti Geeks for Geeks

Oracle: update – select

Ovvero come scrivere un’istruzione SQL per aggiornare i campi di una tabella prendendo i valori da un’altra in join. La soluzione è valida per il dialetto di Oracle, con qualche modifica si fa girare per altri RDBMS. Me lo dimentico sempre e ogni volta devo andare a googlare per trovarlo. Basta! Me lo riporto qui …

Continua a leggere

Funzione anonima↔Espressione lambda

C’è un concetto che per tanti anni mi è apparso misterioso, quello di espressione lambda o lambda expression in inglese – che poi mi è risultato analogo a quello di funzione anonima – da quando me l’hanno raccontato nel corso di Automi e Linguaggi Formali all’Università nell’ambito del corso di LISP moltissimi anni fa. Sì, …

Continua a leggere

Problema con l’uso della libreria curl con PHP

curl-logo

Da tempo sono perseguitato da un errore che si ripete (per quanto sospetto) ad ogni aggiornamento di php e che riguarda la libreria curl. Sia l’invocazione da Apache che da client mi presentano un errore con questo tono: $ php -r “curl_init();” PHP Warning: PHP Startup: Unable to load dynamic library ‘curl.so’ (tried: /usr/lib/php/20210902/curl.so (/usr/lib/php/20210902/curl.so: …

Continua a leggere

Cambiare skin all’applicazione con Bootstrap Italia

bootstrap-italia playground

Introduzione all’uso di Bootstrap Italia, più che altro per capire come si cambiano i colori dello schema