mercoledì 5 dicembre 2018

Windows Forms goes Open Source & many more

Al Microsoft Connect 2018 Microsoft ha fatto annunci interessanti.

https://blogs.windows.com/buildingapps/2018/12/04/announcing-open-source-of-wpf-windows-forms-and-winui-at-microsoft-connect-2018/

Il più importante di tutti è la Preview di .Net Core 3.0, che fra le tante novità include le WinForma e WPF.
In pratica la novità è la retrocompatibilità (evviva!)

Inoltre, poiché .Net Core è open source, i sorgenti di WinForms e WPS sono stati rilasciati al pubblico.

Riuscirò finalmente a fare il porting di una vecchia applicazione a .Net Core e vederla su Mac e Linux?
Incrociamo le dita!

mercoledì 14 novembre 2018

Java e la lotta delle JVM

Oracle ha da poco fatto sapere che le nuove JVM targate Oracle saranno a pagamento: chi voglia usare Java gratuitamente dovrà usare un'implementazione della JDK di terze parti.
La più affermata implementazione della JDK è ovviamente OpenJDK, che è la versione di riferimento tra le VM Java. Ovviamente questa versione, anche se è la base per la JVM Oracle, è molto meno testata, e non ha rilasci LTS, tantoché implementa già la versione 11 delle API.
AWS ha però da poco presentato Corretto, la sua implementazione della JDK versione 8.
Quello che a me è balzato subito all'occhio è la frase usata per presentare il prodotto

"Amazon Corretto is a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit (OpenJDK). Corretto comes with long-term support that will include performance enhancements and security fixes. Amazon runs Corretto internally on thousands of production services and Corretto is certified as compatible with the Java SE standard.[...]"

in 3 righe troviamo: "no cost", "production ready", "long-term support", "certified and compatible with SE standard"

A mettere la ciliegina sulla torta "Amazon runs Corretto internally on thousands of production services"

Se consideriamo che James Gosling, padre di Java, da Maggio 2017 lavora proprio per AWS, (vedi qui) direi che la guerra è appena cominciata.

lunedì 29 ottobre 2018

IBM acquisisce Red Hat

https://www.tomshw.it/hardware/ibm-acquisisce-red-hat-34-miliardi-di-dollari-per-dominare-nel-cloud/

mercoledì 17 ottobre 2018

martedì 31 luglio 2018

martedì 5 giugno 2018

sabato 17 febbraio 2018

Kubernetes: cos'è e perché ne avete bisogno

Kubernetes è un sistema che permette di deployare e gestire semplicemente applicazioni containerizzate.
Poichè le applicazioni girano in containers, non si disturbano tra di sé, anche se girano sullo stesso server.

Kubernetes è stato sviluppato in primis da Google come progetto interno, e poi reso open source.
L'obbiettivo di sviluppare un tale software che servisse da "orchestratore" per i containers è quello di creare e soprattutto gestire microservices invece di applicazioni monolitiche.

Per far girare una applicazione in Kubernetes è necessario impacchettarla in uno o più containers (via Docker o simili), caricare le immagini in un registro e creare una descrizione della app da dare in pasto al server Kubernetes.
La descrizione include informazioni sulle immagini che compongono l'applicazione, come questi componenti sono legati l'un l'altro, quali devono essere eseguiti sullo stesso nodo e quali no. Per ogni componente è possibile specificare quante copie o repliche devono essere istanziate. Inoltre, la descrizione include l'elenco dei servizi che devono essere esposti attraverso un singolo indirizzo ip e resi accessibili agli altri componenti.

In pratica Kubernetes può essere pensato come un sistema operativo per il cluster, che si occupa di tenere attiva ed in buona salute la nostra applicazione.

Inoltre, riesce a dividere perfettamente i compiti di sviluppatori e amministratori di sistema, permettendo che ognuno faccia ciò che sa fare meglio.

Ora, una descrizione esaustiva di Kubernetes non è fattibile in poco tempo, l'argomento è piuttosto complesso e richiederebbe molti post, né tantomeno al momento sono così competente per parlarne in profondità.

L'ultima versione Edge di Docker ha deciso di incorporare Kubernetes, e il pacchetto sembra perfetto come ambiente di test.
Dalle prove che ho fatto all'inizio è tutto un po' più complicato del normale, perché si deve virtualizzare tutto, a partire dallo spazio disco fino al network. Una volta che si è superato questo scoglio ci si accorge però che si guadagna in flessibilità aggiungendo e togliendo funzionalità in pochi comandi, e non dovendosi preoccupare affatto di tenere in piedi l'applicazione, poiché è il motore che si occupa di queste incombenze. Anche l'aggiornamento è semplice, ed il motore si occupa di farlo in maniera progressiva, senza dare discontinuità all'applicazione.

Tutta la configurazione è salvabile in files YAML, che vengono dati in pasto al motore e che, ovviamente, possono essere versionati come un qualsiasi sorgente. Il sistemista diventa qui quasi uno sviluppatore, rispettando anch'egli il ciclo di sviluppo del software.

Un'ultima notazione, per gli amici sistemisti e sviluppatori che conosco: ormai l'era dell'installazione fisica della macchina, a partire dal sistema operativo, è in declino. E' necessario progettare bene le architetture, sia di rete che software, e capire come i vari pezzi possano incastrarsi al meglio. Anche per i software, non si fanno più monoliti, ma tanti piccoli pezzetti che dialogano fra loro.
Il resto è sempre meno a nostro carico, e sempre più automatizzato.
Facciamocene una ragione, e cominciamo a pensare in modo nuovo.

lunedì 15 gennaio 2018

Arduino Visual Studio Code Extension

Tra i vari IDE per Arduino è stata creata anche un'estensione per Visual Studio Code.
L'estensione è creata direttamente da Microsoft.

Il plugin richiede che l'IDE Arduino sia installato ed ha, fra gli altri tool, un monitor seriale integrato.

Ho fatto un test con un progetto che avevo, funzionante su Arduino IDE e che usa la porta seriale, e posso dire che funziona perfettamente. Le modifiche da fare sono ben poche, aggiungere la directory .vscode ed i 2 files settings.json ed arduino.json

Sembra anche che ci sia un debugger integrato, un bel plus, ma al momento non sembra che funzioni su tutte le board