Python: Network Scanner

Premessa: si tratta di un esercizio per imparare il linguaggio e consente solo di fare il ping verso un range di indirizzi.

Quindi: nulla di sofisticato, volevo solo crearmi qualcosa per verificare quali IP fossero raggiungibili nella LAN e – senza usare tools già esistenti e fatti sicuramente meglio – ho semplicemente voluto farmi qualcosa in casa, tutto qua.

Leggi tutto “Python: Network Scanner”

Pylint: non riconosce import locale

Per programmare in Python (o meglio, per imparare a farlo) mi affido a “vscode” come IDE e “pylint” per controllare il codice (tramite il plugin “ESLint”, reperibile qui ).

Utilizzandolo mi sono scontrato con il seguente problema: importando un file .py locale, mi vengono riconosciute come errore (non dichiarate) le funzioni in esso contenute.

Per ovviare al problema è sufficiente:

  1. Creare il file di configurazione: .pylintrc
  2. Aggiungere la seguente riga:

init-hook='import sys; sys.path.append(".")'

Salvando, automaticamente pylint dovrebbe capire che deve considerare anche la cartella corrente come fonte dove importare le definizioni di variabili e funzioni.

Kit Kuman Arduino UNO R3- Display LCD 16×2 4pin

In un altro articolo ho già trattato del Display LCD con Arduino ma, in questa occasione, viene rivisitato con una soluzione più semplice e adatta all’uso con altri componenti.

Lo scopo infatti è quello di pilotare il display in questione con meno pin possibile, 4 appunto.

Leggi tutto “Kit Kuman Arduino UNO R3- Display LCD 16×2 4pin”

Kit Kuman Arduino UNO R3- Display LCD 16×2

Il Display LCD 16×2 (del quale potete trovare le specifiche tecniche qui) mi ha dato parecchio da fare.

L’ho iniziato oltre 9 mesi fa, poi mi sono arenato, spazientito e gliel’ho data sù, avevo anche altro da fare.

Leggi tutto “Kit Kuman Arduino UNO R3- Display LCD 16×2”

Hesk 2.8.2 Responsive

Google mi segnala che, su un sito nel quale utilizzo Hesk (un Help Desk scritto in PHP gratuito da usare sul proprio sito web), sono presenti dei problemi relativi alla fruibilità con dispositivi mobili (in particolare è la Search Console di Google a fare queste segnalazioni).

Il grosso problema è che il tool in oggetto ha un’infrastruttura html piuttosto obsoleta, basata ancora su “tabella”, la quale non consente di gestire facilmente la faccenda del “responsive” (cioè la capacità di un sito di adattare il proprio aspetto a qualsiasi device/sistema/risoluzione).

Leggi tutto “Hesk 2.8.2 Responsive”

Git: Modificare il commento di un commit

Devo essere sincero: di git non ci capisco ancora una mazza !

Per chi non lo sapesse “git” è “è un software di controllo versione distribuito utilizzabile da interfaccia a riga di comando, creato da Linus Torvalds nel 2005” (Wikipedia).

Ora, io lo trovo incasinato da matti, non ci salto fuori nemmeno con l’interfaccia grafica … ma pazienza.

Il mio problema: nei vari commit che ho fatto durante la modifica di un software di terze parti, ho scritto male una parola “responsibe” anziché “responsive” …. e me ne sono accorto dopo parecchi commit (il commit sarebbe una sorta di check-in delle modifiche).

Leggi tutto “Git: Modificare il commento di un commit”

VBS: Creare Collegamento Windows (Shortcut) in Visual Basic

Incollo qui il sorgente di un Visual Basic Script per Windows che consente di creare sul Desktop di Windows un collegamento.

Può essere lanciato da DOS, quindi, da un comune file batch. Richiede 8 parametri, ovvero:

  1. Nome del Link (cioè del file .lnk)
  2. Target (cioè il programma da lanciare)
  3. Argomenti (da passare al Target, facoltativi)
  4. Working Directory (la cartella dalla quale lanciare il Target)
  5. Descrizione del Link
  6. Combinazione Tasti Scelta Rapida (facoltativa)
  7. Icona
  8. Codice Stile Finestra che può avere 3 valori: 1, 2 e 3

Con il valore “1”, in stile finestra, si ottiene la memorizzazione dello stato della finestra, con 2 è massimizzata e con 3 minimizzata ad icona.

Questo il sorgente del file che io ho chiamato “make_windows_link.vbs”:

'********************************************************************************
' UDA'Software 2018
' VERSIONE 2018-11-19
'
' QUESTO SCRIPT HA LO SCOPO DI CREARE UN LINK WINDOWS PER L'AVVIO DI UN
' PROGRAMMA.
'
' PER FUNZIONARE NECESSITA CHE VENGANO SPECIFICATI, IN PRECISO ORDINE, I SEGUENTI
' PARAMETRI:
'
' 1) NOME DEL LINK (SENZA ESTENSIONE, VIENE AGGIUNTA IN AUTOMATICO)
' 2) TARGET
' 3) ARGOMENTI
' 4) WORKING DIRECTORY (Directory di lancio)
' 5) DESCRIZIONE LINK
' 6) COMBINAZIONE TASTI SCELTA RAPIDA
' 7) ICONA
' 8) CODICE STILE FINESTRA (DESCRIZIONE FORNITA DA Microsoft):
' 
'    1 - activates and displays a window. If the window is minimized or maximized, the system restores it to its original size and position.
'    3 - Activates the window and displays it as a maximized window.
'    7 - Minimizes the window and activates the next top-level window.
' 
' 9) PERCORSO DOVE CREARE IL LINK (EX: %PUBLIC%\Desktop )
'
' ESEMPIO:
'
' make_windows_link.vbs "Link Guida Windows" "C:\Windows\winhlp32.exe" "" "C:\Windows" "Lancio della Guida" "CTRL+ALT+SHIFT+H" "C:\Windows\winhlp32.exe" 1
' make_windows_link.vbs "Link Guida Windows" "C:\Windows\winhlp32.exe" "" "C:\Windows" "Lancio della Guida" "CTRL+ALT+SHIFT+H" "C:\Windows\winhlp32.exe" 1 "%PUBLIC%\Desktop"
'
'********************************************************************************
Dim sLinkName 			' 0 Nome del Link
Dim sTargetPath			' 1 Target del link
Dim sArguments			' 2 Argomenti del target
Dim sWorkingDirectory	' 3 Working Directory
Dim sDescription		' 4 Descrizione del Link
Dim sHotKey				' 5 Combinazione Tasti Scelta Rapida
Dim sIconLocation		' 6 Icona da utilizzare
Dim iWindowStyle 		' 7 Stile Finestra

'********************************************************************************
iExitCode = 1	' PER DEFAULT IL CODICE DI USCITA E' ERRORE GENERICO

Set args = WScript.Arguments

If args.Count < 8 Then
	MsgBox "Procedura invocata senza gli 8 parametri previsi.", vbOKOnly & vbCritical, "ERRORE"
	wscript.Quit(iExitCode)
End If

' Associazione parametri
sLinkName = args.Item(0)
sTargetPath = args.Item(1)
sArguments = args.Item(2)
sWorkingDirectory = args.Item(3)
sDescription = args.Item(4)
sHotKey = args.Item(5)
sIconLocation = args.Item(6)
iWindowStyle = args.Item(7)

'********************************************************************************
Set oShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

'********************************************************************************
sDesktopPath = oShell.SpecialFolders("Desktop")

If args.Count >= 9 Then
	sDesktopPath = args.Item(8)
	
	If Not fso.FolderExists(sDesktopPath) Then
		Debug.Write "Cartella " + sDesktopPath + " inesistente"
		iExitCode = 3
		WScript.Quit(iExitCode)
	End If
End If

'********************************************************************************
Set oLink = oShell.CreateShortcut(sDesktopPath + "\\" + sLinkName + ".lnk")
oLink.TargetPath = sTargetPath
oLink.Arguments = sArguments
oLink.WorkingDirectory = sWorkingDirectory
oLink.Description = sDescription
oLink.HotKey = sHotKey
oLink.IconLocation = sIconLocation
oLink.WindowStyle = iWindowStyle
oLink.Save()

'********************************************************************************
If fso.FileExists(sDesktopPath + "\\" + sLinkName + ".lnk") Then
	iExitCode = 0
Else
	iExitCode = 2
End If

'********************************************************************************
' USCITA
' CODICI DI USCITA: 0 = OK / 1 = ERRORE ARGOMENTI / 2 = ERRORE FILE
WScript.Quit(iExitCode)
'********************************************************************************

Va preso e copiato dentro un file con estensione “.vbs” (ex: make_windows_link.vbs ); lo si può creare anche con Blocco Note o qualsiasi altro editor di testo ASCII.

Per usarlo lo si può lanciare da un file batch (.bat) o qualsiasi altra cosa possa eseguire comandi del sistema operativo; a titolo di esempio incollo un file batch che lo lancia e che ci si può personalizzare sostituendo i vari “%1”, “%2”, ecc… con quello che si vuole:

@echo OFF
title Creazione Icona %5
rem %1 : Nome del Link
rem %2 : Target
rem %3 : Parametri
rem %4 : Cartella Partenza
rem %5 : Descrizione
rem %6 : Hotkey
rem %7 : Icona
ECHO Creazione Icona %5
make_windows_link.vbs" %1 %2 %3 %4 %5 %6 %7 3 %8
IF NOT "%ERRORLEVEL%"=="0" (
	ECHO ********************************************************************************
	ECHO ATTENZIONE: NON RISULTA POSSIBILE CREARE L'ICONA: 
	ECHO             %5
	ECHO.
	ECHO PARAMETRI:
	ECHO.
	ECHO 1 : %1
	ECHO 2 : %2
	ECHO 3 : %3
	ECHO 4 : %4
	ECHO 5 : %5
	ECHO 6 : %6
	ECHO 7 : %7
	ECHO 8 : %8
	ECHO.
	ECHO ********************************************************************************
)

Kit Kuman Arduino UNO R3- Buzzer Attivo

Dopo la notevole tribolazione nel gestire la famigerata Matrice di LED 8×8 mi sono cimentato con la Lezione 7 del Tutorial Kuman Arduino UNO r3 che prevede l’utilizzo di un “Active Buzzer Module”.

Ebbene, non so se ho sbagliato qualcosa io – probabile – ma, di fatto, non sono riuscito a realizzare niente di simile al tutorial, o meglio: sembra che il tutorial faccia riferimento a componenti che non sono presenti nel kit – o quantomeno non sono identici – e comunque il tutorial stesso mi è sembrato poco chiaro.

Morale della favola ho realizzato una cosa tipo quella in figura:

Pilotaggio di un Buzzer Attivo tramite un Resistore Variabile e Arduino

Leggi tutto “Kit Kuman Arduino UNO R3- Buzzer Attivo”

Kit Kuman Arduino UNO R3- Dot Matrix

Dopo il Sensore di Fiamma mi sono cimentato con la Matrice di LED 1588BS.

Ho tribolato parecchio perché non capivo il funzionamento. Le difficoltà per un principiante – come me – sono le seguenti:

  1. La matrice è composta da 64 LED disposti in 8 righe da 8 colonne (8×8 = 64)
  2. Nella parte inferiore presenta 8+8 PIN (16 in tutto) che governano righe e colonne in un certo modo (che poi vi spiego)
  3. Arduino UNO non dispone di 16 uscite digitali, quindi, bisogna ricorrere anche a quelle analogiche per gestire la matrice.
  4. La matrice ha una discreta dimensione, quindi, non si riesce – almeno non facilmente – a piazzare su un’unica breadboard; nel mio caso ne ho usato una grande e una piccola.
  5. Su ogni Catodo (alcuni PIN della matrice sono catodi [-] e altri anodi [+]) è opportuno mettere una resistenza da 220 Ohm e, non essendo particolarmente chiara la documentazione fornita da Kuman (ma anche quella che ho trovato in rete è chiara il giusto), ho faticato molto a capire come andavano eseguiti i collegamenti.

Implementazione della Lezione 6 del Kit Kuman Arduino UNO r3

Leggi tutto “Kit Kuman Arduino UNO R3- Dot Matrix”