sabato 30 settembre 2017

Powershell

Dalla Home Page di PowerShell:

PowerShell è una piattaforma di automazione e un linguaggio di scripting per Windows e Windows Server che permette di semplificare il management dei sistemi. Diversamente da altre shell, PowerShell sfrutta la potenza del Framework .NET, mettendo a disposizione oggetti e un set di funzionalità per poter controllare i sistemi Windows.

In pratica, se avete bisogno di automatizzare i vostri server (incluse automatizzazioni di build) PowerShell è ciò che fa per voi.

Recentemente MicroSoft lo ha reso open source, assieme a .Net Core

PowerShell si usa in maniera molto simile ad un bash, permettendo l'esecuzione di comandi non solo da linea comandi, ma anche da file.
Sempre come bash, i comandi posso essere concatenati tramite una pipeline, per cui l'output di un comando diventa l'input del successivo.

Proprio per la sua natura di linguaggio di scripting è possibile creare intere librerie di funzioni, permettendo una grande riusabilità.
Ad esempio ci sono intere librerie di comandi sia per Azure che per AWS, permettendo di automatizzare la maggior parte dei task.

Nelle funzioni è possibile accedere a tutto il framework .Net, permettendo così una buona estensibilità.

Se scrivere una funzione non fosse poi sufficiente, è possibile creare estensioni in C#, dette CmdLet, che possono assolvere a compiti più complessi o interfacciarsi direttamente con dll o quant'altro.

sabato 16 settembre 2017

Arduino: splittare il programma in più sorgenti

Prima di dire come splittare un programma Arduino in più sorgenti è necessario capire come funziona il processo di build dei sorgenti.
In particolare, il preprocessing concatena tutti i files .ino nella directory, e crea un singolo file con estensione .cpp.
A questo file viene aggiunta la direttiva #include che contiene tutte le librerie necessarie ad Arduino.
Quindi, volendo aggiungere un altro sorgente al principale, basta aggiungere un file .ino nella directory, e il compilatore farà il resto.
In alternativa, se si sta usando l'IDE Arduino, per aggiungere un nuovo sorgente basta fare click nell'angolo in alto a destra e selezionare "New Tab" (come descritto qui)
Se invece si usa un IDE tipo AtmelStudio tutto questo processo viene a cadere, perché i sorgenti non hanno più l'estensione .ino, ma sono puri e semplici files .cpp, e ci sarà un makefile esplicito che farà la compilazione.

domenica 3 settembre 2017

Arduino: comunicare via seriale

Tutte le schede Arduino hanno a bordo almeno una porta seriale.
Questo è uno tra i sistemi più usati per colloquiare con l'esterno.
Proprio per questo motivo la libreria che gestisce la scheda seriale è integrata nella libreria di base (Arduino.h)
Il principio della seriale è semplice: nella funzione setup() va inizializzata ed aperta tramite la funzione Serial.begin(): a quel punto è possibile leggere e scrivere sulla seriale. Per un semplice e veloce debug è possibile usare il monitor seriale presente sull'Arduino IDE.
Quindi, oltre la funzione begin(), le 2 funzioni più usate sono print() e read()