Consigli per la Programmazione

Per ogni buon programmatore è d’obbligo non solo guardare alla correttezza e alla leggibilità del codice scritto ma anche e soprattutto all’ottimizzazione per la compilazione o l’interpretazione dello stesso.
L’aspetto dell’ottimizzazione del codice potrà sembrare marginale ma ci sono casi in cui diventa indispensabile aumentare la velocità di esecuzione, minimizzare l’occupazione di memoria o minimizzare la dimensione nel caso di file compilati.
Semplici passi scritti diversamente possono fare la differenza in termini di prestazioni in codici anche non troppo complessi o lunghi.

Ecco 8 consigli utili e regole da rispettare per scrivere un codice perfetto ed ottimizzato.

PARSIMONIA CON LE ECCEZIONI
Il blocco try & cacth con cui si usa racchiudere pezzi di codice in cui è prevedibile il verificarsi di qualche errore va usato con attenzione e non deve essere considerato una scappatoia veloce per ottenere il risultato voluto.
Esso pesa durante la lettura del codice per cui è molto meglio perdere un po’ più di tempo concentrandosi sulla purezza e correttezza del proprio script; nel caso ne fosse conveniente l’utilizzo, cerchiamo di limitare il codice sotto controllo al minor numero di righe possibile e di usarlo fuori da cicli e in funzioni che non vengano richiamate troppo spesso.

ABBONDATE CON I COMMENTI
In caso di funzioni lunghe o poco chiare o variabili non subito utilizzate ricordatevi di commentare, sia per migliorare la leggibilità per chi potrebbe leggere e continuare il codice al posto vostro che per riutilizzo o modifica futuri.

CURATE LA FORMA
E’ importante, sia per chi sviluppa che per chi legge, che il codice sia chiaro, ordinato e ben formattato.
Date nomi chiari a funzioni, proprietà e variabili per renderne più semplice l’impiego e lo scopo, se lo ritenete opportuno usate prefissi per indicare tipi diversi di variabili e funzioni.
Scrivendo i nomi chiaramente non avrete bisogno di scrivere commenti troppo descrittivi.
Cercate di dichiarare le variabili sempre prima del codice così da poterle ritrovare facilmente.
Indentate per bene le espressioni per capire dove iniziano e finiscono: molti programmi hanno l’indentazione automatica durante la scrittura o opzioni per sistemare il codice in seguito.

ATTENTI ALLE VARIABILI LOCALI
Spesso per comodità si usa dare allo variabili locali di una funzione o di un ciclo lo stesso nome di quelle usate fuori dagli stessi: cercate di non acquisire questa brutta abitudine da cui possono derivare errori banali o difficili da individuare e peggiore leggibilità.
Inoltre ricordiamoci che l’accesso alle variabili locali è più di quello alle globali.

NON TRASCURATE IL CASTING
Sia per i parametri di input in una funzione che per i valori in output è importante specificare CHIARAMENTE il tipo e controllarlo all’inserimento.
In caso di errore a run-time sarà più semplice capire se dipendente dal tipo errato di variabile, piuttosto che essere costretti a scorrere tutta la funzione.

OTTIMIZZATE I CICLI
Nel caso di cicli evitate di calcolare i valori massimi nel ciclo stesso, come for (i=0; i < count($array); i++), poichè il metodo verrebbe richiamato ogni volta.
Meglio valorizzate una variabile fuori dal ciclo per passarla come valore massimo.

NON CREARE TROPPE FUNZIONI
E’ utile separare l’applicazione in diverse funzioni da richiamare all’occorrenza ma valutiamo bene e prima, sia per leggibilità di codice che velocità di esecuzione, quali sono quelle che vale la pena separare per il numero di volte richiamate.
Poi, nel caso di cicli, se la funzione che richiamiamo internamente non è troppo lunga, forse è meglio scrivere quelle righe all’interno che richiamarle sempre all’esterno.

ANALISI DELLE GUARDIE
Nel caso di guardie IF con operatori logici (AND, OR) valutare bene l’ordine degli argomenti.

Caso AND
data la condizione if(cond1 && cond2), nel caso in cui cond1 sia falso, cond2 non verrà nemmeno considerato dall’operatore poichè il risultato è già calcolabile.-
Quindi ottimizziamo il codice ponendo l’argomento col più alto tasso di probabilità di ottenere un false in prima posizione o, nel caso in cui il verificarsi dei 2 argomenti abbia la stessa percentuale di successo, scegliamo il meno impegnativo come il primo ad essere eseguito.

Caso OR
data la condizione if(cond1 || cond2), nel caso in cui cond1 sia vero, cond2 non verrà nemmeno considerato dall’operatore poichè il risultato è già calcolabile.
Quindi ottimizziamo il codice ponendo l’argomento col più alto tasso di probabilità di ottenere un true in prima posizione o, nel caso in cui il verificarsi dei 2 argomenti abbia la stessa percentuale di successo, scegliamo il meno impegnativo come il primo ad essere eseguito.

Come Disabilitare il Touchpad Mentre si Scrive

Oggi voglio presentare una piccolissima utility per coloro che usano un computer portatile e spesso scrivendo cliccano accidentalmente con la mano il touchpad causando danni nel documento che stanno scrivendo.

Il programma si chiama touchpad blocker e semplicemente disabilita il touchpad mentre stiamo scrivendo, si può settare il tempo per cui il touchpad rimane disabilitato, evitando cosi di spostare il puntatore nel nostro documento, oppure spostare il focus su un’altra applicazione causando ingenti danni se non si sta guardando il monitor mentre si digita.

Questo tool è gratuito e scaricabile qui.

Se invece vogliamo disabilitare il touchpad in modo indipendente dal premere un tasto, sui moderni notebook e netbook esiste un pulsante che mediante la combinazione fn+tasto permette di disabilitare il touchpad per esempio quando viene collegato un mouse “esterno”, oppure se vogliamo appoggiare dei fogli sul computer evitando che si sposti il mouse o clicca la dove non dovrebbe.

Come si Utilizza il Terminale in Ubuntu

Utilizzando Ubuntu vi capiterà di dover utilizzare il Terminale per alcuni comandi o installazioni di software.

Cos’è il Terminale? E’ la famosa riga di comando!

Nessuno nega la comodità e la praticità del mouse con l’interfaccia grafica, ma per alcune cose utilizzare la riga di comando è la soluzione più veloce. E non occorre nemmeno essere dei cervelloni per poterla usare.

Alla base di tutto ci sono dei comandi da digitare per poter avviare programmi, copiare, salvare, cercare e installare…

Ad esempio mi è capitato di avere difficoltà ad aggiornare il sistema tramite interfaccia grafica, ma aprendo il terminale e digitando il comando “apt-get upgrade” in pochi minuti avevo il sistema aggiornato!

Innanzitutto occorre sapere che il file sistem di Linux è organizzato in una struttura ad albero gerarchica.

La parte più alta di questa struttura è la directory root o /.

Dato che in Linux tutto viene considerato come file, possiamo facilmente intuire che gli altri file e directory sono disposti sotto la directory root (comprese partizioni, dischi fissi etc).

Parlando di root dobbiamo inoltre specificare che normalmente l’utente linux non ha i permessi per modificare il sistema. Questi gli vengono dati temporanemente grazie al comando Sudo, il quale chiede la password prima di permettere le modifiche al sistema.

Ora vediamo quali sono comandi principali da conoscere, dove potete iniziare a conoscere la riga di comando.

Per avviare il Terminale selezioniamolo da Applicazioni > Accessori > Terminale.

Vediamo i comandi basilari

ls (list): permette di visualizzare le directory, visualizzandoli in colori diversi a seconda del loro formato

mkdir (make directory): permette la creazione di una nuova directory

cd (change directory): permette di spostarsi nella directory selezionata

cp (copy): permette di copiere file o directory

rm (remove): permette la cancellazione di qualsiasi file specificato

rm -rf: permette la cancellazione di qualsiasi directory specificata

mv (move): permette di rinominare/spostare file o directory

pwd: questo comando mostra la directory in cui ci troviamo

top: questo comando è molto utile, poiché ci da informazioni sul nostro sistema, informandoci sui processi in esecuzione, risorse del sistema, utilizzo della RAM e CPU.

Ogni comando poi ha un suo manuale che in qualsiasi momento può essere visualizzato digitando ad esempio: man ls (immagine 1)

Se invece dobbiamo agggiornare il sistema i due comandi fondamentali da sapere sono: apt-get update e apt-get upgrade (preceduti dal comando sudo).

Con update aggiorniamo i repository dei software presenti sul nostro sistema, mentre con upgrade verifichiamo se ci sono aggiormaneti del sistema.

Per installare un software possiamo digitare il comando apt-get install seguito dal nome del pacchetto che ci interessa.

Su internet potete trovare moltissimi altri comandi che potete utilizzare.

Scoprirete che il Terminale non è terribile come sembra ma potreste trovarlo cosi pratico, da utilizzarlo molto più spesso di quanto non avreste mai pensato.

Come Progettare una Casa Domotica

Questo non è certo il periodo di acquistare immobili in quanto i tassi troppo elevati sui mutui non lo permettono ma anche per altri motivi. E dal momento che è difficile acquistare una casa “normale”, figuriamoci una casa domotica. La domotica, per chi non lo sapesse, è una scienza che ha lo scopo di migliorare i vari aspetti della casa, dalla sicurezza, alla qualità della vita in casa, alla riduzione del consumo di energia e altre cose. Scopriamo come potrebbe essere la casa domotica nei prossimi decenni…

La casa domotica esiste già, e come puoi vedere dal video informativo qui sopra è già in una fase avanzata. In poche parole la casa domotica è una casa che sfrutta l’elettricità per aggiungere automatismi e comodità come
-il controllo del riscaldamento in ogni camera
-monitoraggio a distanza degli ambienti tramite apposite telecamera
-il controllo dell’illuminazione in ogni stanza
-l’abbassamento o innalzamento delle tapparelle o lo spostamento delle tende
-il rilevamento di eventi come allagamento della casa o fuga di gas, in questi casi la casa domotica potrà avvisare il proprietario della casa anche attraverso un SMS
-il controllo del consumo di energia, che permette di regolare l’energia fornita per consumarne di meno e magari disattivare tutti i dispositivi in stand-by che non usiamo
-gestione della climatizzazione
-irrigazione del giardino
-riscaldamento dell’acqua (che sarà disattivabile quando siamo via di casa)
Il tutto, nella maggioranza delle case domotiche, viene fatto da un computerino touchscreen a muro nel soggiorno della casa. Queste sono le tecnologie presenti in qualsiasi casa domotica, ma scopriamo come si potrebbe evolvere la casa domotica e come si è già evoluta.

Il primo passo di evoluzione che è stato fatto negli ultimi anni è stato il comando dallo smartphone o dal tablet. Dal nostro iPhone o cellulare Android potremo infatti fare tutto ciò che prima facevamo dal piccolo tablet a muro in casa. Quindi anche a distanza di migliaia di km potremo collegarci via internet (con ovviamente un protocollo sicuro adeguato) alla nostra casa, spegnere le luci, mettere l’allarme antifurto, disattivare l’energia elettrica e fare tante altre cose. Alcune società che costruiscono case domotiche lo hanno già fatto. Un dispositivo portatile però potrà darci permetterci di fare molte più cose nella nostra casa, tempo fa era apparso un video di un ingegnere del MIT di Boston che aveva creato la porta apribile con l’iPhone.

Non solo, una casa domotica, e una casa intelligente, prevederà la disposizione e costruzione dei mobili in modo da diventare compatibile con un robot di pulizia (iRobot o Samsung) ed ecco che sempre dal nostro smartphone potremo controllare il robot, farlo ripartire ecc. E magari, per una pulizia più ottimale, la casa domotica potrà fornire al robot una mappa con tutti gli spazi da pulire, mappa che potremo modificare (sempre sul nostro iPad e iPhone) per delineare le aree dove il robot non dovrà passare e magari delineare anche le zone dove sarà meglio che passi due volte (vicino alla cuccia del cane 🙂 ??).

Aspettiamoci dunque di tutto, la casa domotica di svantaggi non ne ha, o quasi
Il costo di solito è contenuto, realizzare una casa domotica con le funzionalità base (videosorveglianza, controllo delle tende, climatizzazione, riscaldamento ecc.) di solito non ha un prezzo esagerato, ma se si parla di domotica avanzata allora il prezzo lievita parecchio. L’obiettivo della casa domotica per il futuro è anche abbassare i prezzi, per entrare anche nelle case comuni e negli appartamenti
L’installazione e manutenzione di una casa domotica richiede parecchie modifiche al sistema elettrico della casa, dunque richiede anche tempo

Riguardo il consumo di energia, certamente per tutti gli automatismi previsti dalla casa domotica il consumo di energia è superiore, ma allo stesso tempo è inferiore in quanto qualsiasi casa domotica è dotata di un sistema di gestione della corrente elettrica, quando saremo fuori di casa potremo disattivare tutti i dispositivi non necessari (computer, televisioni in stand-by…) che ci faranno sicuramente risparmiare molta energia. Senza considerare centinaia di automatismi che potremmo inserire come l’attivazione delle luci solo nelle stanze in cui siamo presenti (attraverso appositi sensori di rilevazione movimenti) e molto altro.

Come Creare Pulsanti con Photoshop

In questo nuovo tutorial per Photoshop scopriremo come creare un bottone grigio in stile Skimbu, un bottone semplice ma che anch’esso, come diremo nell’introduzione, ha la sua difficoltà.

Le funzioni basilari di Photoshop le sanno usare in molti. La difficoltà di Photoshop ci viene incontro in due occasioni
-Quando dobbiamo eseguire lavori che richiedono funzioni particolari una combinazione di filtri, come ad esempio il montaggio digitale di una foto (vedi questo tutorial, ad esempio).
-Quando vogliamo eseguire lavori semplici che non richiedono particolari funzioni ma che richiedono un’attenta selezione dei colori oppure una certa manualità (con strumenti manuali come penna, matita ecc.)

In questo tutorial ci troviamo nel secondo caso, in realtà noi creeremo un rettangolo e lo stilizzeremo (un normale bottone), ma ad esempio io, che conosco Photoshop da 7-8 anni almeno nelle sue funzioni basilari, solo adesso sono arrivato a produrre un bottone stilisticamente pulito e bello, oltre che semplice, come quello che andremo a produrre e che noti spesso anche su Skimbu.

Purtroppo molti sottovalutano questo aspetto, ma la scelta dei colori è assolutamente fondamentale se si lavora nel web design, scegliere colori “a caso” produrrà sempre un lavoro che sarebbe potuto essere molto più appariscente se i colori fossero stati scelti accuratamente. Anche l’associazione dei colori è fondamentale, c’è chi mischia blu con nero oppure azzurro con rosso e crede di essere un bravo webdesigner. Difficilmente però nei designer professionisti si notano colori scuri su colori scuri (come anche blu e nero) oppure colori bianchi su colori bianchi.

In questo breve tutorial andremo a creare dunque un bottone semplice e pulito. Ricordo che non andremo a fare nulla di complicato, questo tutorial vi serve più che altro per imparare a scegliere accuratamente i colori, oltre che imparare a usare gradazioni lievi e altri piccoli consigli/suggerimenti che ho imparato quando disegno nuove interfacce.
Disegniamo subito la parte più semplice, dopo aver creato un documento (io ho fatto 600×400 per avere molto spazio) scegliamo lo strumento Rettangolo (U), come foreground color (il quadratino dei colori in fondo al pannello degli strumenti) scegliamo il nero e disegniamo un rettangolo non troppo alto e lungo più o meno quanto il testo che ci vorremo inserire.

Risulta essere già venuto il momento di stilizzare il nostro bottone, e qui viene la parte più difficile. Doppio click sul livello del rettangolo appena creato e abilitiamo sovrapposizione sfumatura.
Iniziamo con la sfumatura grigia, noi andremo a creare un bottone grigio, nonostante il grigio sia un colore che non ha molte tonalità (a differenza di un colore come il giallo, che può tendere al marrone o al beige) in quanto il grigio può essere solo scuro o chiaro.

Qui bisogna banalmente scegliere due grigi, uno più chiaro e uno più scuro, ma stiamo attenti perché un bottone troppo scuro risulterebbe poco pulito, mentre un bottone troppo bianco e chiaro perderebbe il suo fascino. Dunque ci vuole la giusta sfumatura di grigio, che non è facile trovare. Per farvi capire ecco tre esempi di bottoni grigi, chiaramente quello in mezzo risulta più pulito e personalmente anche molto più bello, anche se tutti e tre sono bottoni apprezzabili. Ricordo che avrei potuto spendere ancora qualche minuto per trovare la gradazione giusta per i tre bottoni, specialmente per il primo e per il terzo mi sono soffermato poco perché servivano da esempi, ma anche nel secondo probabilmente ci stava una sfumatura grigia ancora leggermente più chiara.

Per il secondo bottone, la sfumatura da impostare è la seguente (ho specificato ovviamente i colori esadecimali), che dovrai impostare in Sovrapposizione di sfumatura cliccando sul rettangolino di fianco al parametro “Sfumatura”.

Ovviamente al bottone ho aggiunto anche altri effetti che lo hanno reso molto interessante, come una leggera ombra esterna, un’ombra interna ecc. ecco le finestre di seguito

Come hai notato anche la traccia del bottone necessita di un grigio che si adegua alla luminosità della sfumatura, la sfumatura più scura ha richiesto una traccia più scura mentre la sfumatura più chiara ha richiesto una traccia più chiara.

Creiamo ora l’active state del bottone, ovvero lo stile del bottone quando sarà cliccato. Basterà cambiare l’ombra interna,

Ricordatevi anche di disattivare il bagliore interno.

Poi ovviamente potrai “giocare” con i colori, magari rendere la sfumatura più scura per dare ancora di più l’effetto profondità.