Tag: opensource

  • Arduino Uno, un po’ più di un “Hello, world!”

    Primo esperimento significativo con Arduino Uno, qualcosa che va oltre il classico “Hello, world” con annesso blink del LED giallo.

    Inizialmente mi sono accontentato di montare qualche componente esterno direttamente su due pin strip infilate nei connettori della scheda, ma la scarsa stabilità del sistema mi ha fatto desistere, e così ho acquistato cinque Proto Shield, cioè un circuito stampato preforato (tipo una scheda millefori) e preformato per essere sovrapposto alla board Arduino Uno. Ed ecco il circuito iniziale, riportato nel proto shield.

    Arduino Uno Proto Shield

    C’è un trimmer collegato ad un ingresso analogico, un dip switch a due vie collegato a due ingressi digitali, e due LED ad alta luminosità (per rendere il tutto più figo) collegati a due uscite PWM. Il loop principale del firmware funziona così: leggo il valore relativo al trimmer, e uso il valore per pilotare in PWM i due LED, solo se il corrispondente pin del dip switch è su ON, altrimenti spengo il LED. Inoltre, se la variabile legata al debug è vera, invio sulla seriale il valore letto sul trimmer.

    Ecco il firmware.


    // Do not remove the include below
    #include "dimmer.h"
    #include <SoftwareSerial.h>

    #define LED_R 10
    #define LED_V 11
    #define TRIMMER A0
    #define DIP1 5
    #define DIP2 6

    boolean debug = true;
    int brigthness = 0;

    //The setup function is called once at startup of the sketch
    void setup() {
    pinMode(LED_R, OUTPUT); // Red LED, output
    pinMode(LED_V, OUTPUT); // Green LED, output
    pinMode(DIP1, INPUT); // 1st switch
    pinMode(DIP2, INPUT); // 2nd switch
    if (debug) Serial.begin(57600);
    }

    // The loop function is called in an endless loop
    void loop() {
    brigthness = analogRead(TRIMMER);

    if (digitalRead(DIP1)) analogWrite(LED_R, (int)(brigthness / 4));
    else analogWrite(LED_R, 0);
    
    if (digitalRead(DIP2)) analogWrite(LED_V, (int)(brigthness / 4));
    else analogWrite(LED_V, 0);
    
    if (debug) {
        Serial.print("Brigthness: ");
        Serial.println((int)(brigthness / 4), DEC);
    }
    

    }

    Nel breve termine vorrei: 0] legare il debug ad un tasto fisico, invece che ad una variabile hard-coded; 1] verificare se tramite una coppia trasmettitore / ricevitore IR si può mettere in piedi un sensore di prossimità; 2] pilotare una barra LED usando il minor numero di pin; 3] (il vero obiettivo) interfacciare la board ad una macchina radiocomandata, in modo da sfruttare la meccanica e l’elettronica di base preesistenti.

  • Tre progetti tre

    E’ maledettamente frustrante. Sei in qualche modo interessato a tre progetti, e su due di questi hai basato altrettanti tuoi lavori; poi in poco tempo scopri che:

    * il team che sviluppa la ROM per il tuo vecchio smartphone Android ha smesso di supportarlo;
    * l’estensione che usi per lo script che tanto ti ha reso famoso in FF ha un bug noto che nessuno sembra intenzionato a risolvere;
    * il servizio al quale si appoggia il plugin WordPress che hai rimesso in sesto o funziona male o ha cambiato la modalità di funzionamento, e ti arrivano segnalazioni di bug che non puoi risolvere;

    Valuto seriamente l’idea di mollare tutto, sistemare il giardino della padrona di casa e farci un orto.

  • Coapp, Microsoft e l’opensource

    Notizia interessante da OssBlog riguardante l’approccio di Microsoft verso il mondo opensource. L’articolo propone una intervista a Garrett Serack, il leader del progetto Coapp, progetti il cui scopo è quello di integrare al meglio i software opensource all’interno dei sistemi Windows per garantirne una corretta usabilità.

    Dall’intervista:

    “Faccio il lavoro più bello del mondo”. In sostanza, lo zio Bill lo paga per fare in modo che i validissimi software open source richiesti dalle aziende non sia appannaggio solo dei sistemi Linux. Detto che non lo sono, è sicuramente più semplice installarli dall’Ubuntu Software Center (tanto per dirne uno) direttamente dentro la nostra linux box che non farli funzionare su Windows

    E ancora:

    Coapp nasce così, per portare tutto l’open source possibile alla gente che vuole usarlo su Windows. Microsoft non vuole ignorare gli sviluppatori opensource, cosa che ha fatto in passato, ora vogliamo che si sentano a casa quando lavorano su un pc con Windows. Possiamo collaborare, non c’è alcun motivo per non lavorare insieme. L’obiettivo è fare prodotti migliori. Microsoft si è svegliata da sei anni a questa parte, imparando molto dalla comunità open source.

    L’intervista è interessante, così come questo nuovo accostarsi di Microsoft al mondo opensource. Non solo entrambe le parti ne hanno da guadagnare, ma anche gli utenti finali.

    [Fonte OssBlog]

  • Linux e opensource a Cesenatico

    La libertà non ha prezzo

    So già di non poterci andare, ma lo pubblicizzo ugualmente.
    Sabato 25 settembre, ore 9, presso il Museo della Marineria di Cesenatico si terrà “La libertà non ha prezzo”, una conferenza sul software libero organizzata da UIELinux, uno dei LUG attivi e presenti in zona, e patrocinata dal Comune di Cesenatico. Mi sembra una iniziativa importante per questo piccolo pezzetto di Romagna.

    [tags]uielinux,opensource[/tags]

  • [Tip] Esportare la wishlist di IBS

    Ecco il risultato di un piccolo esercizio di stile di shell programming messo a punto per risolvere un problema a Lawrence, un mio contatto su Friendfeed.

    C’è modo di esportare la wishlist di IBS verso Amazon oppure Anobii?

    In effetti IBS non consente alcun tipo di esportazione dei libri messi nella lista dei desideri, e si potrebbe essere portati ad rispondere “No” alla domanda, ma una breve analisi visiva/CTRL-F ai sorgenti della pagina mi hanno dato qualche speranza, ed ho intensificato le ricerche salvandola in locale ed sottoponendola a qualche tool da riga di comando. La prima cosa che mi è saltata all’occhio è stata la scarsa eleganza del codice generato, ed ho passato il file .html a tidy, un potente strumento per la validazione e la correzione del codice [X]HTML, in modo da renderlo più leggibile; poi ho individuato le parti più “interessanti” relativamente alla soluzione del problema, e cioè questo testo:

    http://www.ibs.it/ser/serdsp.asp?isbn=9788874241590

    che contiene appunto il codice ISBN di uno dei libri presenti nella wishlist.
    Sono quindi passato a grep, costruendo man mano la stringa di ricerca fino ad ottenere un risultato più o meno pulito, tipo questo:

    http://www.ibs.it/ser/serdsp.asp?isbn=9788874241590"
    http://www.ibs.it/ser/serdsp.asp?isbn=9788874241590"

    La presenza della doppia linea non è un errore di scrittura nel post, ci sono realmente due linee del genere per ogni libro nella wishlist. Dopo grep ho chiamato in causa sed per ripulire l’output ed ottenere solo l’elenco dei codici ISBN, la soluzione al problema, facendogli eseguire due cose in successione:

    sed -e 's/[^0-9]*//g'

    con questa chiamata cancello tutto ciò che non è numerico, mentre con

    sed -n 'p;n'

    stampo in output solamente le linee dispari.
    Et voilà, ecco la riga di comando completa:

    tidy -f errs.txt -imu lista.html; grep '."http://www.ibs.it/ser/serdsp.asp?isbn=[0-9]\{13\}' lista.html | sed -e 's/[^0-9]*//g' | sed -n 'p;n'

    Leggendo il codice si nota la presenza del file lista.html, che corrisponde alla pagina della wishlist salvata in locale: utilizzando questa accortezza ed eseguendo la riga di comando nella medesima directory contenente il file si ottiene in output l’agognato elenco di codici ISBN pronto per essere copiaincollato in Anobii. Sono convinto che il codice possa essere ottimizzato ma, come confermatomi da Lawrence, già in questo modo è pienamente funzionante.

    Happy coding

    [tags]shell, linux, internetbookshop, ibs[/tags]

  • [Tip] Ricodificare l’audio di un video

    Un instant post per ricordarmi in futuro di come ho fatto una cosa con il mio nuovo acquisto: una tv per poter gustare al meglio i film e i video del computer.
    Questa volta il problema è un video AVI che nella nuova TV si vede, ma del quale non viene riprodotto alcun suono. Un veloce controllo indica che usa un codec audio AC3, che evidentemente non è supportato dalla TV, mentre il controllo su uno che si sente riporta MPEG-1 Layer 3 come codec. Come fare quindi a ricodificare il filmato? Mi aiuta mencoder:

    mencoder file_ac3.avi -o file_mp3.avi -of avi -oac mp3lame -ovc copy
    

    Giusto il tempo della ricodifica et voilà, il filmato è pronto per la visione sul TV.

    [tags]mencoder[/tags]

  • Cosa ho imparato al WordCamp #wcmi

    Venerdì e sabato ho partecipato al WordCamp 2010 Milano, e ci tengo a ringraziare pubblicamente Wolly per l’organizzazione, e gli speakers per i talk molto interessanti.

    Qualche riflessione.

    * “Content is the king”, indubbiamente, ma ci vuole un buon contenitore per contenere il contenuto, e WordPress svolge questo ruolo più che egregiamente;
    * I plugin, croce e delizia del nostro blog. Sono importanti [ho salvato quelli che ho ritenuto più interessanti nel mio account su Delicious man mano venivano citati], vanno tenuti aggiornati, e rimossi se non usati;
    * L’utente admin, impostato di default per l’amministrazione del blog, va rimosso, previa la creazione di un utente ad-hoc con gli stessi privilegi. Lo farò nei prossimi giorni;
    * WordPress 3.0, attualmente in stato di Beta, introdurrà molte migliorie e features interessanti, alcune ora disponibili solo come plugin, tipo i custom type post e le tassonomie. Ah, ci sarà anche il merge con WPMU, la versione multiuser; qui l’elenco delle novità della versione 3.0;
    * Buddypress potrebbe essere una buona soluzione per creare un social network, nel caso in cui Friendfeed si rompa definitivamente ;)

    [UPDATE: elenco di seguito le slides dei talk, appena disponibili]

    * La sicurezza di WordPress per non sparire da Google [Sean Carlos], qui;

    Alla prox

    [tags]wordcamp, wcmi, wordpress[/tags]

  • Android-x86 su Asus EEEPC 701

    Ovvero come giustificare finalmente la presenza del netbook nel marasma dell’angolo tecnologico della casa.

    Allora, ho ereditato l’ASUS EEEPC 701 Surf 2G (pimpato da una SCHD da 4 oppure 8GB) da mio babbo per scopi educativi, tipo “ormai l’ho preso, ma non riesco a farci niente, vedi un pò tu”. Inizialmente montava l’OS di default, e cioè Xandros, che ho prontamente arato per smanettarci un poco. Se non ricordo male, il primo OS testato era gOS, scelto perchè montava il mio DE preferito, E17; ma è durato poco, l’integrazione tra il DE e l’Ubuntu sottostante non era perfetta, e soprattutto risultava difficile gestire alcune finestre che sbordavano verso il basso, nell’esiguo 7″ che monta questo netbook.
    Sono poi passato a Easy Peasy, che per primo mostrava l’innovativa interfaccia Netbook Remix, specifica appunto per questo tipo di device; ma la presenza di Ubuntu era sempre troppo ingombrante, e l’interfaccia era anni luce dal poter essere descritta come fluida.

    E il giocattolino è rimasto fermo per diversi mesi. Ero addirittura tentato di installarci un qualche *BSD (tipo NetBSD), giusto per riuscire a rosicare un pò di risorse il più per la parte grafica.

    Poi, qualche giorno fa ho letto questo articolo su OssBlog e, positivamente incuriosito, ho deciso di tentare la fortuna, per rendere il netbook simile a qualcosa di realmente utilizzabile. E questo è quanto osservato finora.

    Il test

    Prerequisiti
    * Il netbook;
    * I’immagine ISO del LiveCD (io ho usato questa);
    * un pendrive grande a sufficienza da contenere la ISO;
    * unetbootin (o qualcosa di simile per flashare il pendrive e renderlo bootabile);

    Steps
    * Flashare nel pendrive la ISO con il proprio tool preferito, ricordandosi di rendere bootabile il pendrive;
    * Bootare il netbook con il pendrive inserito, ricondandosi di selezionare il boot da USB;
    * Selezionare, nel menu che appare, la modalità di boot preferita (sessione live oppure installazione su disco);
    -> Partenza live: boot piuttosto rapido, e a meno dell’impossibilità di salvataggi persistenti non ho notato grossi rallentamenti;
    -> Installazione su disco: un poche richieste, selezione del disco, tipo di filesystem, installazione o meno del bootloader;
    Poi scelta tra reboot o partenza.
    * Ecco, ora, in un modo o nell’altro, avete una sessione funzionante di Android sul vostro netbook :)

    Annotazioni
    * La rete WEP è stata vista senza problemi, e la connessione è rapida e indolore;
    * Dopo lo stand-by, il sistema fatica un pò a riconnettersi;
    * Ho trovato il touchpad un pò scomodo da usare, mi muovo meglio con la tastiera;
    * Il tasto ESC chiude la finestra corrente;
    * Il tasto Menu (a dx della barra spazio) fa apparire il menu contestuale nel footer del display;
    * Non so come installare una applicazione dal Android Market;
    * Per scrollare una pagina, left click + touchpad

    Per ora, questo è quanto emerso dal veloce test effettuato questa sera; il sistema è molto veloce, e fa sembrare l’Ubuntu installato in precedenza un grosso lumacone. Sembra proprio che Android sia riuscito a dare un senso questo netbook (IMHO).

    Alla prox

    [tags]eeepc 701, android[/tags]

  • Nuova versione -> programma migliore!

    Ebbene si, in questo caso la risposta e’ affermativa!
    Mi riferisco a Sylpheed, IMHO uno dei migliori client di posta attualmente disponibili, e che sto utilizzando da diverso tempo. L’ho introdotto tempo addietro, e ora ci torno sopra perche’ il progetto sta evolvendo ad un ritmo impressionante, la 2.3.0.beta1 e’ stata rilasciata il 29/09/2006, mentre la beta5 e’ uscita il 10/11/2006, ed e’ una signora beta!
    Il programma e’ molto stabile, ha acquistato parecchia velocita’ di esecuzione, il consumo di memoria e’ praticamente irrisorio, e finalmente sono state introdotte alcune features mancanti che lo rendono ancora piu’ appetibile anche ad una utenza non esperta.
    Il programma e’ ora riducibile ad icona con scomparsa nella traybar, e l’icona che compare cambia alla ricezione di nuovi messaggi, in modo da avere sott’occhio la situazione senza ulteriori click del mouse. Un altro punto a favore e’ la semplicita’ di installazione, che controlla la presenza di una versione precedente, provvede a rimuoverla mantenendo le impostazioni e le email (ma va!), e prosegue con il setup vero e proprio della nuova release.
    Per quanto riguarda gli sviluppatori, e’ molto interessante la presenza di una LibSylph, attualmente in versione alpha: praticamente e’ una libreria di funzioni che permette la creazione di un proprio client di posta, sfruttando questo layer sottostante e gia’ testato (Sylpheed si basa proprio su questo…).
    Non mi resta che consigliarvi di installarlo, magari per prova, e vi accorgerete del valore di questo ottimo programma.

    Alla prox