L'abbiamo inviato a ICALP, vedremo come andrà.
Saturday, March 9, 2013
First paper
Il mio primo articolo come coautore è finalmente online su Arxiv, qui: http://arxiv.org/abs/1302.5607
Thursday, March 7, 2013
Come installare EiffelStudio

Nel mio caso si è trattato di Eiffel72 nella versione a 64 bit, per versioni successive sostituire tale nome nei comandi seguenti, e per architetture a 32 bit togliere il "-64" nel secondo comando "export" del punto 3 e nel percorso del punto 4.
Ecco la procedure:
- scaricare il pacchetto da https://www2.eiffel.com/download/download_info.aspx?id=eiffelstudio&info=false&mirrors=eiffelstudio dopo essersi registrati sul sito (se vi dà fastidio si trova su SourceForge);
- spacchettare il pacchetto aprendo il terminale, andando nella cartella dove si trova il pacchetto, ed eseguendo
tar xvfj Eiffel72_gpl_91169-linux-x86-64.tar.bz2 -C ~/
- aprire il file ".bashrc" in un editor di testo, ad esempio digitando nel terminale
ed incollare dunque alla fine del file le seguenti righe per aggiungere le necessarie variabili d'ambiente:gedit ~/.bashrc
#environment variables for EiffelStudio export ISE_EIFFEL=~/Eiffel72 export ISE_PLATFORM=linux-x86-64 export PATH=$PATH:$ISE_EIFFEL/studio/spec/$ISE_PLATFORM/bin
- sloggarsi e riloggarsi nell'utente attuale;
- digitare nel terminale "estudio", ed EffelStudio si avvierà ;)
- alla prima esecuzione, creando il primo progetto, chiede di compilare i precompilati. Scegliere "yes".
Tuesday, February 12, 2013
Laziodisu&Unidata + low_bandwith + javascript = connettersi con un click
Come suggerito dal titolo (...) qui si fornisce un piccolo trick per diminuire di una briciola lo stress cui sono sottoposti gli studenti delle residenze universitarie gestite da Laziodisu. Pare infatti che una connessione internet decente (un diritto tanto fondamentale che il M5Stelle ne ha fatto uno dei punti fondamentali del proprio programma), sia considerato da Laziodisu poco più che un optional: il (dis)servizio è fornito agli studenti sulla base di un contratto con Unidata che... beh, basta chiedere opinione agli stessi studenti delle residenze...
Il solo atto di connettersi inserendo le proprie credenziali nel captive portal in certi periodi della giornata è spesso impossibile. Un primo accorgimento che si può prendere è senz'altro quello di salvarsi la pagina sul PC in modo da risparmiare al browser lo sforzo di scaricarla da Internet.
Un trucco minimamente più ingegnoso è quello di inviare direttamente le proprie credenziali per la connessione senza passare per il captive portal, cioè facendo "a mano" ciò per cui si viene indirizzati al captive portal.
In pratica, basta prendere questo URL:
https://romawireless.unidata.it:8081/login?81bd1635640576bf2301102209f04d1a=1&original_url=http://geoip.ubuntu.com/lookup&username=PIPPO&password=PLUTO
scrivendo al posto di PIPPO il nome utente che inseriamo nel rispettivo campo del captive portal (di solito si tratta più o meno del proprio numero di cellulare), e al posto di PLUTO la password corrispondente.
A questo punto, basta creare un segnalibro (in generale, qualsiasi browser si usa, basta cliccare col destro la barra dei segnalibri e dovrebbe esserci un'opzione del tipo "aggiungi segnalibro"), chiamandolo con qualcosa come "ConnessioneRomaWireless", e incollando nella voce dell'URL quello che abbiamo appena costruito.
Ad esempio, su Chrome si arriva alla finestra che potete vedere bene cliccando sulla seguente immagine
Ad esempio, su Chrome si arriva alla finestra che potete vedere bene cliccando sulla seguente immagine
Wednesday, January 30, 2013
MOOC
Più che per il corso in sé, ero molto curioso di fare l'esperienza di seguire un MOOC, e devo dire che finora sono molto impressionato da come sia molto superiore il rapporto tra quanto si apprende dal corso rispetto al tempo dedicatovi, in confronto a quanto invece sperimentato in un ordinario corso universitario.
Certo, la parte che non stupisce, in tale divario, è quanto è dovuto alla bassa qualità del sopracitato normale corso universitario, per fattori tra cui i seguenti:
- insegnanti privi di talento e/o motivazione per il proprio incarico didattico;
- mancanza di fondi da parte dell'università (per pagare assistenti, tutor, esercitatori...);
- obsolescenza del modello a lezione frontale, con l'insegnante che svolge il proprio monologo e gli studenti che trascrivono materiale già disponibile su libri di testo;
- mancanza di adeguati strumenti per lo studente che complementino la sua formazione al di fuori della lezione e dello studio sul testo (forum ove scambiare idee con altri studenti e reperire materiale utile, etc)
In parte sull'ultimo punto sto assistendo ad un po' di positiva informatizzazione: gli studenti possono scambiarsi informazioni tramite la pagina Facebook di cui oramai ogni singolo corso di laurea dispone, e reperire materiale utile al corso su cartelle condivise su Google Drive.
Il MOOC, dal canto suo, coi video delle lezioni che si possono vedere e rivedere quando e come si vuole, il materiale didattico che per forza di cose è ben ordinato e curato, il forum e il wiki del corso dove, oltre che col corpo docente, si può trovare l'aiuto delle decine di migliaia di colleghi, i quiz che appena completati mostrano il risultato e dove sono stati commessi gli eventuali errori... crea un ambiente di apprendimento che, per quanto ho sperimentato finora, risulta molto più adattabile alle proprie esigenze e molto meno "massificato" del corso tradizionale (sempre, rispetto alla mia vita scolastica italiana).
Prima che ci fosse questo boom dei MOOC, qualche hanno fa, ricordo di aver discusso con un ex-collega universitario sul proporre ai professori di far filmare le proprie lezioni per renderle disponibili online; il collega mi spiegò che aveva già provato a proporre la cosa, ma senza successo: i professori ai quali aveva chiesto non volevano saperne di farsi filmare. Non mi lancio nelle speculazioni psicologiche sui perché dietro tale rifiuto...
Una cosa è certa: un fattore cruciale nell'assicurare la qualità dei MOOC è proprio il fatto che l'insegnante si ritrova a tenere un corso a tutto il mondo... le sue lezioni, ogni dettaglio del corso, è visibile all'intera umanità! La qualità della didattica del docente e dell'università si ritrova dunque in discussione al 100%, e per non perderci la faccia non resta che offrire agli studenti un'insegnamento che sia il meglio del meglio.
Spot: chi si ferma è perduto.
IMHO decisamente un bel video da vedere, anche se non propriamente rilassante....
Tuesday, January 29, 2013
Dannate tessere, dannati circuiti e dannata porta
Un problema che mi è stato posto giorni fa e alla cui soluzione sono arrivato dopo rosicati fallimenti.
Problema:
Hai tre tessere e sei davanti a una porta con tre fessure in cui puoi infilarle. Ciascuna tessera è la tessera corretta di una sola fessura e viceversa.
Ogni fessura è collegata ad un circuito che non puoi vedere e che inizialmente può essere o aperto o chiuso, e la porta si aprirà solo quando tutt'e tre i circuiti saranno chiusi. Puoi cambiare lo stato dei circuiti solo inserendo tutt'e tre le tessere, e il cambiamento avviene così: se il circuito è chiuso, si apre; se il circuito è aperto, si chiude solamente se nella sua fessura è inserita la tessera corretta.
Qual'è il minimo numero di inserimenti necessario ad aprire la porta?
Problema:
Hai tre tessere e sei davanti a una porta con tre fessure in cui puoi infilarle. Ciascuna tessera è la tessera corretta di una sola fessura e viceversa.
Ogni fessura è collegata ad un circuito che non puoi vedere e che inizialmente può essere o aperto o chiuso, e la porta si aprirà solo quando tutt'e tre i circuiti saranno chiusi. Puoi cambiare lo stato dei circuiti solo inserendo tutt'e tre le tessere, e il cambiamento avviene così: se il circuito è chiuso, si apre; se il circuito è aperto, si chiude solamente se nella sua fessura è inserita la tessera corretta.
Qual'è il minimo numero di inserimenti necessario ad aprire la porta?
Soluzione
Chiamiamo le tessere 1, 2 e 3 e rappresentiamo i diversi modi di inserirle come triple ordinate in cui la posizione della chiave corrisponde alla fessura in cui la inseriamo: ad esempio 213 significa che inseriamo la tessera 2 nella prima fessura, la tessera 1 nella seconda e la tessera 3 nella terza.
La seguente sequenza di inserimenti apre con certezza la porta con al più 8 tentativi: 123, 312, 231, 123, 213, 321, 132, 213.
Perché funziona?
Osserviamo che, presa la tripla corretta (quella che apre la porta se la inseriamo quando tutti i circuiti sono aperti), se ruotiamo (=scaliamo di posto) la posizione delle chiavi otteniamo una tripla totalmente scorretta (nessuna tessera è al posto giusto); con ruotare intendo che ad esempio 213 diventa 321.
Dunque, abbiamo due casi: o la tripla corretta è nelle prime quattro della sequenza in questione, o nelle ultime quattro.
Supponiamo che sia nelle prime quattro.
La seguente sequenza di inserimenti apre con certezza la porta con al più 8 tentativi: 123, 312, 231, 123, 213, 321, 132, 213.
Perché funziona?
Osserviamo che, presa la tripla corretta (quella che apre la porta se la inseriamo quando tutti i circuiti sono aperti), se ruotiamo (=scaliamo di posto) la posizione delle chiavi otteniamo una tripla totalmente scorretta (nessuna tessera è al posto giusto); con ruotare intendo che ad esempio 213 diventa 321.
Dunque, abbiamo due casi: o la tripla corretta è nelle prime quattro della sequenza in questione, o nelle ultime quattro.
Supponiamo che sia nelle prime quattro.
- Se uno o due circuiti sono inizialmente chiusi, allora se 123 non è quella corretta chiude subito tutto (perché è totalmente scorretta dato che ruotandola si ottiene quella corretta!), e resta tutto chiuso finché una delle tre seguenti non apre tutto;
- se invece uno o due circuiti sono inizialmente chiusi e 123 è quella corretta allora essa cambia lo stato dei circuiti ma poco male, perché poi 312 è totalmente scorretta e apre tutti i circuiti, e al quarto tentativo 123 trova tutti i circuiti aperti e li chiude, aprendo la porta.
- Se invece tutti i circuiti sono inizialmente aperti, è facile vedere che non ci sono problemi.
Thursday, January 17, 2013
A boy is better unborn than untaught.
Oggi ho concluso le 4 esercitazioni che ho tenuto per il corso di Algoritmi e Strutture Dati 2 del prof. Clementi.
L'esperienza è stata davvero formativa, e penso di aver imparato molto più di quanto abbia fatto imparare.
Le slides sono sul sito del corso. Le ultime due contengono errori che non ho corretto, in particolare l'ultima ha un esattamente di troppo e con il senno di poi le prove di correttezza dei due algoritmi non sono di certo le migliori possibili.
In ogni caso ecco lo zip dei pdf su Google Drive e il sorgente Latex per i neofiti dell'eccellente Beamer (classe Latex per creare presentazioni in tale linguaggio).
Nel mentre sono indietrissimo con lo studio bibliografico che volevo condurre, impaziente di verificare l'utilità dell'ausilio della digital-library/social-network CiteULike, ma in compenso sono tornato a sporcarmi le mani con l'impareggiabile software matematico Sage, e con le meraviglie del programmare in Python (al seguito di un dottorando in informatica davvero pro, da cui ho tutto da imparare), con lo scopo di implementare delle belle simulazioni (sogni che si realizzano, dato che poco mi affascinò in passato quanto il concetto di simulazione virtuale).
L'esperienza è stata davvero formativa, e penso di aver imparato molto più di quanto abbia fatto imparare.
Le slides sono sul sito del corso. Le ultime due contengono errori che non ho corretto, in particolare l'ultima ha un esattamente di troppo e con il senno di poi le prove di correttezza dei due algoritmi non sono di certo le migliori possibili.
In ogni caso ecco lo zip dei pdf su Google Drive e il sorgente Latex per i neofiti dell'eccellente Beamer (classe Latex per creare presentazioni in tale linguaggio).
Nel mentre sono indietrissimo con lo studio bibliografico che volevo condurre, impaziente di verificare l'utilità dell'ausilio della digital-library/social-network CiteULike, ma in compenso sono tornato a sporcarmi le mani con l'impareggiabile software matematico Sage, e con le meraviglie del programmare in Python (al seguito di un dottorando in informatica davvero pro, da cui ho tutto da imparare), con lo scopo di implementare delle belle simulazioni (sogni che si realizzano, dato che poco mi affascinò in passato quanto il concetto di simulazione virtuale).
Subscribe to:
Posts (Atom)