Blog
This is where the community shares some of their experiences with computer science and entrepreneurship. Posts dated before 2020 are in Italian only, sorry :).
This is where the community shares some of their experiences with computer science and entrepreneurship. Posts dated before 2020 are in Italian only, sorry :).
Attenzione: parleremo di circuiti logici, di vettori, di matrici e di fisica quantistica. Riservato ai più coraggiosi!
When studying the basics of quantum computing we start describing circuits with easy calculations on or matrices, but as soon as we explore the first algorithms we stumble upon oracles that seem to be too complex to be represented like that. But matrices are very important for us developers: they are like functions that we can design and inspect regardless of the input. If we could describe any circuit as a simple combination of matrices, programming circuits would be similar to programming functions. There must be a way. Maybe I found one.
In April 7, 2020, thanks to a beautiful workshop held by Federico Mattei from IBM, I was introduced to the fundamentals of Quantum Computing, and it was love at first sight. I frantically studied the required maths, the Python language, the Qiskit library, and Jupyter notebooks. Then, after working hard on the basics for a dozen days, I was stuck with the most basic algorithm. But then I worked even harder, and finally I can say I got it: the problem was that I couldn't figure out why and how the so-called "oracles" should be implemented. Here is what I found.
Se c'è una cosa buona che il faticoso ecosistema JavaScript ha portato nelle nostre vite è un ritorno alla programmazione funzionale. Dopo anni e anni a scervellarsi su oggetti, classi e design pattern, Facebook con i suoi React e Redux ci ha convinti a fare marcia indietro e riconsiderare le funzioni pure, l'immutabilità e la composizione a scapito dell'ereditarietà, delle annotation e della dependency injection. A un tratto il codice diventa potente, performante, leggibile e testabile come non lo è mai stato, e la programmazione orientata agli oggetti (o meglio, alle classi) pare solo un brutto ricordo.
Oggi mi sono trovato davanti a un problema a prima vista molto semplice da realizzare, ma il cui risultato si è rivelato orribile e per niente ottimale. Il problema si descrive molto facilmente in linguaggio naturale "calcolare la differenza tra due liste A e B". Facile no? A prima vista sì, ma scendendo nel tecnico si è rivelato un po' più ostico del previsto, perché le mie due liste erano composte da oggetti, ognuno con più di un parametro e una chiave generata in modo randomico, quindi il problema andrebbe riformulato come "calcolare la differenza tra due liste di oggetti A e B basandosi su uno dei suoi parametri".
L'ecosistema creato da Facebook sta tirando fuori un gioiellino dopo l'altro: dopo react e redux di recente è anche uscito create-react-app, che permette di arrivare da zero ad app funzionante in un unico comando. Ma che succede se vogliamo pubblicare un componente React da usare come libreria per altri progetti? E se lo stato del componente fosse così complesso da richiedere un contenitore di stati come Redux? Queste sono le domande che mi sono dovuto porre quando ho creato react-property-grid
.
Ne parlano bene, ne parlano male, per una volta voglio parlarne anch'io. Senza nessuna autorevolezza in merito, s'intende. Ma per virtù della Teoria degli Effetti Collaterali™ l'app di Pokémon Go si è rivelata fin da subito un successo planetario e anche meritato.
Proveniendo da un contesto procedurale e orientato agli oggetti, un approccio funzionale e dichiarativo come quello di redux richiede un salto mentale non indifferente. Realizzare applicazioni è molto semplice, almeno finché non si devono gestire un'infinità di effetti collaterali e chiamate asincrone che si innescano a catena. È lì che l'approccio più intrigante risulta quello procedurale. Tuttavia dobbiamo essere coraggiosi e cercare l'approccio più semplice ed elegante, non quello più comodo.
Ottimo, il primo post in un blog tecnologico non parla di tecnologia ma di Fisco.
Ciao mondo! Questo è il nostro primo vagito nel mondo dell'interwebz :)