Visualizzazione post con etichetta programming. Mostra tutti i post
Visualizzazione post con etichetta programming. Mostra tutti i post

venerdì 15 febbraio 2019

Condividere un file

Succede spesso che gli studenti inviino una e-mail per chiedere chiarimenti sull’esercizio che stanno svolgendo.

Ecco i metodi utilizzati per condividere l’esercizio che stanno svolgendo, che vanno dal meno frequente (ma più adeguato) al più frequente (ma orribile da tutti i punti di vista):

  • Codice sorgente su un repository GitHub, inviando il link al repository.
    Nota: non succede mai, ma sarebbe il mio sogno.
  • Codice sorgente completo (es. progetto Eclipse o progetto PyCharm) inviato come zip.
    Nota: quando lo zip supera i filtri dell’anti-spam, è un po’ scomodo da gestire, ma alla fine sei sicuro che ci sia tutto.
  • Codice sorgente parziale (es. solo un file, o parte di un file), inviato come allegato di e-mail.
    Nota: a patto che l’errore sia proprio in quel file (e comunque non hai modo di provarlo, quindi devi andare “ad istinto”… e sappiamo tutti quanto vale l’istinto nel debug).
  • Codice sorgente parziale, incollato nel corpo della e-mail.
    Nota: spazi, indentazioni, caratteri speciali, se se sono andati a farsi friggere.
  • Videata del codice sorgente (screenshot del PC), inviata come file immagine via e-mail.
    Nota: molto stupido (vedi solo una parte di un file, e non puoi studiarlo né modificarlo) e molto raro (quasi nessuno sa come salvare su file uno screenshot preso da PC… suggerimento: in Windows c’è uno “Strumento di Cattura”, oppure usate il freeware Greenshot).
  • Videata del codice sorgente, sbilenca e sfocata, ottenuta fotografando lo schermo con un cellulare.
    Nota: è di gran lunga la modalità più utilizzata. Di solito è impossibile capire cosa stavano facendo e cosa poter rispondere. Infatti, solitamente non rispondo, o chiedo che inviino il file originale.
    Ma soprattutto il dubbio amletico è: stai lavorando su un file, sei su un PC (o Mac che sia), hai un programma di posta… come ti viene in mente di fare una foto allo schermo?

Ovviamente temo il momento in cui mi invieranno un video in cui mi spiegano a voce il problema, inquadrando lo schermo con fare tremolante ed incerto. Lo temo, ma so già che prima o poi arriverà.

lunedì 7 gennaio 2019

Tips: Dizionario italiano in JetBrains

Gli IDE prodotti da JetBrains sono ottimi strumenti per lo sviluppo di applicazioni nei più disparati linguaggi. Inoltre, le versioni professionali degli IDE sono gratuite per studenti e docenti. In particolare, uso molto spesso PyCharm per programmare in Python.

Nella scrittura del codice, PyCharm segnala non solo (ovviamente!) gli errori di sintassi, semantica e stile nel codice, ma anche gli errori di ortografia (spelling) contenuti nei nomi delle variabili, delle funzioni, e nelle stringhe di testo.

Il controllo ortografico avviene normalmente in lingua inglese, ma è possibile aggiungere dizionari anche di altre lingue. Ad esempio, spesso noi italiani utilizziamo un misto di italiano ed inglese sia come identificatori di variabili e funzioni, sia come messaggi in output.

La procedura per installare nuovi dizionari è ben documentata in questa pagina della documentazione ufficiale JetBrains. e vengono supportati sia dizionari sotto forma di lista di parole (una parola per linea, con estensione .dic), sia dizionari nel formato Hunspell (composti da un elenco di parole .dic ed una serie di regole di modifica .aff), che però richiedono l’installazione di un plugin aggiuntivo.

Personalmente propendo per la maggior semplicità del semplice elenco di parole. Il passo successivo è: dove si trova un elenco (completo, aggiornato) di parole italiane? La cosa più semplice è fare riferimento ai dizionari ridistribuiti dall’editor WinEdt, che sono scaricabili da questa pagina.

lunedì 5 novembre 2018

venerdì 16 giugno 2017

Tecniche di Programmazione 2016/2017

Si è conclusa l'edizione 2016/2017 del corso di Tecniche di Programmazione per ing. Gestionale al Politecnico di Torino.
Principali trattati nel corso: Java, JavaFX, database, algoritmi, strutture dati, ricorsione, simulazioni ad eventi, pattern di programmazione).
Ricordo a tutti gli interessati le risorse didattiche prodotte durante il corso, liberamente accessibili con licenze "open"(se volete, chiamatele OER - Open Educational Resources):

Un ringraziamento ai collaboratori Andrea Marcelli ed Alberto Monge.

lunedì 27 giugno 2016

Piccola Odissea digitale nei libri

I libri scolastici sono una delle cose più difficili da acquistare. A volte vengono segnalati dai docenti dei testi non ancora disponibili sul mercato. Quasi sempre le librerie non li hanno in giacenza, e devono ordinarli. Molti dei negozi on-line non trattano la categoria dei libri scolastici, e quando lo fanno i tempi di spedizione e di consegna non sono quasi mai garantiti.
La salvezza, spesso è andare alla fonte, al sito dell'editore, ed acquistare da lì. È ciò che ho provato a fare oggi con un testo si Simone Scuola Editore.
Nell'ordine, le disavventure sono state:

  1. Cliccando su "Acquista cartaceo" (l'equivalente di "Aggiungi al carrello", ma usare l'etichetta universalmente nota sembrava troppo banale), il sito non funziona, e visualizza il testo di un errore PHP (sì, il testo dell'errore all'interno dell'HTML della pagina -- si trattava di un errore di sintassi). Questo succedeva ieri sera, ed anche stamattina.
  2. Oggi cerco gli indirizzi di contatto dell'editore, e scrivo loro una mail spiegando l'accaduto, e dicendo che sono intenzionato ad acquistare il libro, ma non ci riesco. Ovviamente nessun utente del sito riesce ad acquistare nessun libro, visto l'errore presente.
  3. In giornata ricevo una mail di risposta. Anzi no, non un vero "reply" al mio messaggio. Ricevo una mail da un utente di gmail.com, con oggetto vuoto, che senza citare la mia richiesta né il nome dell'editore, mi rassicura dicendo che ci sono degli interventi in corso (in produzione, dove sennò?), e che ora posso procedere all'acquisto.
  4. Torno sul sito, e finalmente il bottone funziona. Forse. Un po'. Il bottone "Acquista cartaceo", infatti fa comparire sulla destra un riepilogo del carrello, con un ulteriore bottone per procedere all'acquisto. Da notare che non c'è alcun modo per andare al carrello, se non cliccando su "Acquista" (e quindi duplicando l'acquisto richiesto. Duplicando la riga, e non aumentando la quantità, tanto le primary key non le hanno ancora inventate).
  5. Volendo confermare l'acquisto, vengo portato ad un sito diverso (quello principale dell'editore), il quale mi richiede una serie di dati (nome, indirizzo, codice fiscale, ecc.). Ovviamente il mio sesto senso mi ha impedito di inserire i miei dati di carta di credito in un sito così farraginoso, per cui ho optato per il pagamento via PayPal. Cioè, avrei optato.
  6. Dico "avrei" perché, giunti alla conferma, ho notato che il costo totale era pari alle sole spese di spedizione. Come, il libro è gratis? No, il libro proprio non c'è. Il carrello era vuoto, inesistente, con zero elementi. Più le spese di spedizione (si sa, il vuoto è difficile da trasportare). Ferma tutto.
  7. Riprovo tutto il processo più volte (con il "carrello" del primo sito che si riempie di copie dello stesso libro, ed il "carrello" del secondo sito che rimane imperterritamente vuoto). Niente. Il contenuto del carrello non si trasferisce.
Quando è troppo è troppo. Domani faccio un salto nella libreria vicino a casa. Risparmierò anche le spese di spedizione (tanto il prezzo di copertina è uguale).
E quando mi parlano di digital divide, devo ricordarmi che si tratta di cultura, capacità imprenditoriale, comprensione dei problemi, corretta implementazione, ecc ecc, e quasi per nulla di capacità di banda.

martedì 8 dicembre 2015

Will Wolfram rewrite the physics of space-time?

Stephen Wolfram is one of the greatest mathematical and entrepreneurial minds of our generation (creator of Mathematica and Wolfram|Alpha, among other things).
I didn't know he was trying to postulate a computational basis for the whole universe, based on graph networks and cellular automata. He already derived Einstein equations (special relativity and general relativity) from his model.

I found his article quite enlightening: http://blog.stephenwolfram.com/2015/12/what-is-spacetime-really/  (quote: "I found it a bit amusing to say I had a computer in my basement that was searching for the fundamental theory of physics")

Note: reposted from facebook

mercoledì 2 aprile 2014

Tips: CSVed per manipolare file CSV

Il formato CSV (comma separated variables) è un formato testuale, utilissimo per scambiare informazioni tra basi dati di tipo diverso. E’ un formato accettato da Microsoft Excel, Microsoft Access, OpenOffice/LibreOffice Calc, e dalla maggior parte dei server SQL. Molti siti Internet (soprattutto intranet) permettono di scaricare tabelle di dati in formato Excel o CSV.
Tecnicamente, si tratta di un formato testuale, i cui ciascuna riga contiene un “record” di informazione (es. una riga di Excel), ed i diversi “cambi” (es. le colonne) sono riportati sulla stessa riga, separati da un opportuno carattere.
La semplicità del formato, tuttavia, lascia spazio a molte “varianti”. Ad esempio, il carattere separatore può essere la virgola (“comma”, da cui il nome CSV), il punto e virgola (più utilizzato in Italia, per evitare confusione con la virgola decimale), o più raramente il carattere di tabulazione od il simbolo di barra verticale (|). I campi di tipo stringa possono a loro volta essere demarcati da virgolette doppie (“…”), apici semplici (‘…’) o nulla. La prima riga del file può contenere già il primo record, oppure può contenere i nomi dei campi. E così via, le varianti sono moltissime.
Se dobbiamo leggere, modificare ed agire sul formato di file di tipo CSV, ci viene in aiuto un piccolo programmino gratuito (freeware) denominato CSVed, reperibile al sito http://csved.sjfrancke.nl/ e sviluppato dall’olandese Sam Francke.
CSVed-screenshot
Il programma CSVed permette di gestire file CSV con qualsiasi variante di formato, e di eseguire una serie di operazioni di manutenzione (aggiungere, eliminare, spostare, rinominare, unire, dividere colonne) e di modifica (inserimento, aggiornamento, cancellazione, ordinamento di righe).
L’utilizzo del programma non è molto intuitivo, e l’usabilità dell’interfaccia non è tra le migliori. Superato questo ostacolo di usabilità, tuttavia, lo strumento si rivela potente e completo.

giovedì 18 luglio 2013

Una preposizione a piacere

Sospetto che il 98% degli sviluppatori software segretamente sogni un mondo alternativo, nel quale esista una lingua universale come l’Esperanto, scritta e parlata dagli abitanti di tutte le nazioni.

Già, perché nel mondo attuale il problema della localizzazione (la traduzione di un software in diverse lingue) è uno dei meno appassionanti ma pieno di insidie e grane.

Anche gli sviluppatori di software di larga diffusione come Spotify non ne sono immuni, tanto che mi sono sempre lambiccato sul significato della frase “Tizio ascoltati su Canzone”.

spotify-IT

Per capire cosa significa, basta riavviare il programma in lingua inglese:

spotify-EN

Come abbiano potuto tradurre “listened to” in “ascoltati su” è ancora un mistero, almeno per me.

P.S. spero che Marco mi perdoni per la nano-violazione della sua privacy

lunedì 27 maggio 2013

Italian Scratch Festival

Lo scorso 18 maggio 2013 si è tenuto l’annuale Italian Scratch Festival, organizzato dalla Associazione Dschola ed ospitata nel bellissimo auditorium della scuola ITI Majorana di Grugliasco (TO).

Scratch

Sono molto contento di essere stato invitato a fare parte della giuria, per valutare i video-giochi realizzati in Scratch dagli studenti di prima e seconda superiore. Abbiamo dovuto valutare gli 11 lavori finalisti che erano stati pre-selezionati da un comitato (che comprendeva anche altri studenti).

I videogiochi erano tutti molto divertenti e giocabili. Molti avevano una buona progressione di gioco, e cercavano di ricostruire le dinamiche di intrattenimento che si vedono in prodotti molto più blasonati. Mi sono anche divertito a spulciare il “sorgente” dei programmi, trovando soluzioni tecniche anche interessanti.

Ed il tutto svolto da ragazzi che avevano una formazione solo iniziale di informatica, ma compensata da molto interesse e molta passione.

Questa è una foto di gruppo dei 5 vincitori (ma anche gli altri 6 erano quasi altrettanto in gamba), insieme agli organizzatori ed ai ‘giudici’.

ISF_gruppo_vincitori

Sono persone come queste, di cui abbiamo bisogno per il futuro. Ragazzi determinati ed appassionati, che sudano lunghe ore per realizzare il loro prodotto, che non si intimoriscono a parlare di fronte a 200 loro coetanei (non sempre del tutto rispettosi), che non cercano di nascondere le debolezze dei propri programmi ma le evidenziano come spunti di miglioramento, che attraversano l’Italia da Sud a Nord per sfidare i compagni sulla loro passione comune, che non cercano di ricalcare il triste cliché del bulletto ma cercano di essere sé stessi ed esserlo con orgoglio, anche se un po’ nerd.

Incoraggiamoli. Difendiamoli. Coltiviamoli. Costruiranno il nostro futuro.

lunedì 20 maggio 2013

HeidiSQL: front-end MySQL leggero e completo

Nello sviluppo di applicazioni, soprattutto Web, il database open source più utilizzato è certamente MySQL,distribuito dalla Oracle.

Nello specifico, il prodotto è chiamato “MySQL Community Server” ed è, appunto, un server: non dispone di interfaccia grafica vera e propria, ma viene utilizzato attraverso comandi SQL inviati sulla porta TCP/IP 3306.

Per facilitare la gestione e l’amministrazione dei database, nonché per lo sviluppo e debugging delle query, esistono però strumenti interattivi, dotati di interfaccia grafica, che semplificano la vita.

I due più noti sono:

  • MySQL Workbench: distribuito dalla Oracle insieme al server stesso. Sostituisce i più obsoleti “GUI Tools”, che però rimpiango ancora per la loro semplicità e leggerezza. Tuttavia integra un ottimo editor grafico per la progettazione degli schemi del database, prima della creazione delle tabelle stesse.
  • PhpMyAdmin: la notissima interfaccia web, scritta in PHP, che consente l’amministrazione praticamente completa di un server MySQL. Il principale svantaggio è che è scritto in PHP, pertanto richiede l’installazione di un server web (apache httpd con modulo mod_php), ed il funzionamento delle funzioni più complesse richiede la configurazione di alcune tabelle di appoggio. Solitamente si fa più in fretta ad installare un pacchetto all-in-one come XAMPP per avere il tutto funzionante al primo colpo.

heidisql_logoRecentemente ne ho scoperto un terzo, oggetto di questo post, dal nome un po’ ridicolo per le persone della mia generazione: HeidiSQL.

A parte il riferimento al cartone animato di Heidi, che non riesco a scacciare di mente, questo è un software open source scritto da Ansgar Becker, ed è abbastanza completo e, soprattutto, molto leggero (il file di installazione è circa 3,3MB ed una volta installato è intorno agli 8MB, contro gli oltre 100MB del Workbench) e veloce. Ultimamente, lo preferisco rispetto al MySQL Workbench soprattutto per via dei minori tempi di avvio.

Il difetto principale è che sia disponibile solamente per sistema operativo Windows (o linux+wine), il che ne impedisce l’utilizzo al crescente numero di utenti Mac.

Tutto sommato, mi sento di consigliarlo tra gli strumenti immancabili di uno sviluppatore. Tra l’altro, HeidiSQL viene distribuito anche insieme alla distribuzione binaria per Windows di MariaDB (la versione non-Oracle, totalmente open source, di MySQL Server, che si sta rapidamente diffondendo nelle distribuzioni linux).