Archivi per MrModd

Navigando tra le distro

“Alt! Chi siete? Cosa portate? Si, ma quanti siete? Un fiorino!”
Cit. Non ci resta che piangere (1984)

Siamo sommersi di distribuzioni di ogni forma e dimensione ormai. Se non altro è facile trovare quella che soddisfa appieno le proprie esigenze, anche se l’hard disk chiederà pietà molto presto, a forza di format…
In questi ultimi tempi ho provato quelle principali e ora vi esporrò le mie impressioni.

Navigando tra le distro prosegui la lettura »

Buone feste!

Buon Natale e Felice Anno Nuovo a tutti!

Doodle di Google per le feste di quest'anno

Roma2LUG Opening: test succeeded!

Spinto dall’articolo già pubblicato da Alessio Biancalana sul suo blog personale, ho deciso anche io di buttare giù qualche riga sulle mie impressioni dell’evento di ieri: il Roma2LUG Opening.

Possiamo dire che è stata la prova del nove del nascente gruppo Roma2LUG dell’università Tor Vergata ed è stata passata con successo. Considerando che è stato il primo evento pubblico del LUG, l’affluenza è stata oltre le mie aspettative ed i talk sono stati tutti molto interessanti e ben esposti. C’è stato anche un “talk-sorpresa“, aggiunto solamente il giorno prima alla scaletta, che nonostante tutto ha trovato il suo spazio raccontando argomenti molto interessanti.

La maggior parte della gente che ha partecipato conosceva già Linux e questo ha fatto sì che nessuno usufruisse del banchetto adibito ad Install Fest. È stato un vero peccato, dopo tutto il lavoro svolto per riuscire a condividere la rete internet dalla connessione wireless dell’università ad uno switch ethernet a 24 porte. Sarà per la prossima volta 🙂

Anch’io ho partecipato al dietro le quinte dell’evento ed ho presentato un talk sulle differenze tra Linux, Windows e Mac OS X. Le mie slide sono raggiungibili qui. Ringrazio Cristina che mi ha aiutato e supportato nella realizzazione delle slide, soprattutto negli aspetti grafici.

Tutte le slide dei talk sono state pubblicate nell’ultimo articolo del blog ufficiale.

BeagleBoard: un cane con sopra Linux

Beagle_logoOggi vi parlerò di un giocattolino piuttosto interessante: la BeagleBoard. In sostanza è una scheda elettronica grande poco più di un Floppy Disk in cui è condensato un intero sistema, con tanto di USB, uscite video digitale e analogico, porta seriale e molto altro.

Ho recentemente acquistato la versione xM della scheda che vanta caratteristiche hardware superiori rispetto alla versione base. Il cuore di tutto il sistema c’è un processore ARMv7 Cortex A8 con frequenza operativa di 1GHz, affiancato da una memoria RAM di 512MB. Non ha memorie Flash o EEPROM, il che rende essenziale l’uso di una scheda microSD esterna su cui va caricato, oltre al sistema operativo, il Bootloader e il  Bootstrap. A differenza della versione base conta ben 4 porte USB e una porta Ethernet 10/100Mbps. C’è da dire, inoltre, che l’intera piattaforma è free (libera), ad eccezione del brevetto per l’architettura ARM…

La scheda cambia di utilità in base a ciò che ci si aspetta da essa: sicuramente non è adatta come personal computer, sebbene abbia una GPU integrata e sappia riprodurre filmati in FullHD, ma risulta molto interessante per chi vuole lavorare su sistemi embedded oppure vuole mettere su un server casalingo fanless dalle prestazioni “discrete” (non vi aspettate nulla di velocissimo, è comunque un’architettura RISC!).

Vale la pena spendere due parole riguardo alle potenzialità in ambito embedded. Infatti la BeagleBoard è dotata di numerosi slot di espansione che mettono a disposizione dello sviluppatore molti segnali direttamente provenienti dal processore OMAP. Spiccano tanto per cominciare le porte GPIO (General Purpose Input Output), con le quali si possono pilotare semplici LED oppure gestire apparati più complessi per gli utenti che hanno qualche conoscenza approfondita sull’elettronica. Altre segnali messi a disposizione dell’utente sono l’I2C, l’UART, tutti i segnali di pilotaggio per un display e per una camera e altri ancora. Insomma, per un utente che sa destreggiarsi tra software, protocolli e hardware la BeagleBoard risulta il suo paese dei balocchi.

Prossimamente scriverò un articolo in cui spiegherò in dettaglio la sequenza di avvio della BeagleBoard xM; si tratta di pochi file essenziali per il corretto funzionamento della scheda. Stay tuned!

Ubuntu + Tablet: questo matrimonio non s’ha da fare

ubuntu_logoRecentemente Shuttleworth ha annunciato i progetti per la versione 14.04 di Ubuntu, la caratteristica che salta subito agli occhi è la volontà di portare la distribuzione anche sui dispositivi che si stanno dimostrando il futuro dell’informatica: i tablet e i cellulari. Un bene? Io non penso.

Iniziamo con il dire che un ampliamento del mercato di questo genere comporterà senza dubbio la necessità di adattare l’interfaccia grafica ai dispositivi con puntamento touch screen. Questo significa dover trovare un compromesso tra la precisione del mouse e l’approssimazione del tocco di un dito. Dubito fortemente che verranno prodotte diverse versioni di Unity per differenziare i mercati, con conseguente inusabilità dell’interfaccia grafica sui “Personal Computer”, ormai dichiarati ingiustamente obsoleti. Devo ricordare la fine che ha fatto Windows 8, con lo screensaver che si disabilita “strusciando” il dito mouse sullo schermo?

Entrando invece in un contesto implementativo io credo (e ci tengo a sottolineare che è solo un mio punto di vista) che ci si stia dirigendo verso un livello di astrazione troppo alto. Come qualsiasi architettura gerarchizzata, come può essere quella di un calcolatore o anche di una interfaccia di rete (vedi OSI), è sempre necessario ripercorrere tutta la piramide per poter raggiungere il “livello zero” dato dallo strato hardware; per fare in modo che uno stesso software possa lavorare su architetture così diverse, come quella di un Personal Computer (i686CISC) e quella di un Tablet (ARMRISC), è necessario o generalizzare le istruzioni, riducendo la simbiosi instaurata con la macchina, oppure salire con il livello di astrazione, creando virtualizzazioni e rallentando necessariamente il sistema.

Per questi motivi io credo che sia necessario mantenere separati questi due mercati. D’altra parte esistono alternative nate e cresciute con il solo obiettivo di affermarsi nel “mondo touch”, non è necessario inquinare questo ambiente con soluzioni ibride.

My two cents.

Mac: aggiornamento EFI e LED meno brillante

Qualche giorno fa, per la seconda volta, mi si è aggiornato l’EFI sul Mac Mini. Come al solito l’aggiornamento è durato un po’ e ha mostrato il corretto avanzamento con qualche “sparaflash” del minuscolo LED posto sul case. È da quel momento però che c’è qualcosa che non mi torna: proprio quel LED, che ad ogni aggiornamento impazzisce, sembra aver perso la propria candida brillantezza. Deciso a prendere il toro per le corna ho mandato in sospensione il sistema ed effettivamente ho verificato che la luminosità del diodo, quando il sistema è a regime, è minore rispetto al suo massimo livello consentito, ancora osservabile nello stato di standby. Mi chiedo perché la Apple abbia voluto ridurre la potenza. Prevenzione dal surriscaldamento del LED??? O_o  Mah…

Una pendrive per domarle tutte (le distribuzioni!)

Con l’avvento delle pendrive i dischi ottici stanno andando incontro alla morte. Si cominciano a vedere nei negozi i primi computer fissi senza lettore CD/DVD, mentre è già da tempo che hanno fatto la loro entrata in scena portatili che non hanno l’unità ottica. Contemporaneamente a questa tendenza sono aumentate le richieste di metodi di installazione alternativi, che sfruttano le pendrive avviabili per installare interi sistemi operativi, ma come combinare la versatilità e l’elevata capienza di questi dispositivi con le mille mila distribuzioni Linux disponibili sul mercato? La risposta è Grub2.

Lo stesso bootloader che viene installato silentemente ogniqualvolta una distribuzione prende possesso del proprio PC permette di eseguire al boot le iso di più distribuzioni contemporaneamente.

La configurazione della pennetta è semplice. Basta eseguire i seguenti passi:

  1. Prima di tutto occorre formattare la partizione in un filesystem più consono del vecchio e inefficiente fat32, con cui di solito vengono vendute le pennette. Il mio consiglio è di usare ext4 in quanto veloce ed affidabile (vedi nota sotto). Per farlo affidatevi a GParted.
  2. Successivamente è necessario installare Grub nella partizione MBR. Da un ambiente in cui è già presente Grub2 lanciate il comando (con permessi di root):
    grub-install --no-floppy /punto/di/mount/della/pendrive /dev/sdx
    dove x è la lettera associata alla pendrive.
  3. L’installazione di Grub non è ancora completa. Per far sì che funzioni correttamente è necessario copiare nella pennetta la cartella /usc/share/grub del proprio sistema che contiene alcuni file necessari per il bootloder. Conviene copiare questa cartella nella cartella boot creata dal comando precedente. Quindi:
    sudo cp -r /usr/share/grub /punto/di/mount/della/pendrive/boot/
  4. L’installazione è quasi completata, manca solo il file grub.cfg (vedi altra nota sotto) che conterrà le entries delle distribuzioni. Sconsiglio di copiare quello presente sul proprio sistema operativo (/boot/grub/grub.cfg) in quanto molte sue parti sono superflue per gli scopi della pennetta. È preferibile farne uno ad-hoc. A questo indirizzo è disponibile il mio grub.cfg (rinominato in grub.txt per ragioni di sicurezza). Come si vede dalla sezione APPEARANCE ho scelto di mettere uno sfondo al bootloader. Sostituite matrix.png con un file di vostra scelta per visualizzare lo sfondo che più vi piace e posizionate il file dentro la cartella /boot/share della pendrive. Se non volete lo sfondo sostituite tutto il blocco APPEARANCE con le seguenti righe:
    set menu_color_normal=light-blue/black
    set menu_color_highlight=light-cyan/blue

A questo punto la pendrive è pronta e configurata, ciò che manca sono le distribuzioni. Purtroppo non tutte permettono di essere avviate via iso, mentre per alcune non è semplice trovare la giusta stringa di avvio che faccia capire al kernel dove e come trovare il proprio filesystem. In linea di massima la struttura essenziale che ogni entry nel grub.cfg deve avere è questa:

menuentry 'nome che comparirà sul bootloader' {
loopback loop (hd0,1)/la/iso/da/montare
set root=(loop)
linux (loop)/il/kernel/dentro/la/iso/da/avviare opzioni_di_avvio
initrd (loop)/initial/ramdisk/da/caricare
}

Oltre a questo si può abbellire la entry mettendo savedefault, se si vuole che Grub evidenzi l’ultima voce avviata precedentemente, oppure delle stampe a schermo mediante il comando echo (vedere il mio grub.cfg) per mostrare dei messaggi durante l’avanzamento dell’esecuzione di Grub.

L’importante è che tra le opzioni di avvio passate al kernel ci sia il parametro che gli faccia capire dove trovare la iso della distribuzione e questo varia da distro a distro. I parametri più comuni sono isoloop, img_loop oppure iso-scan/filename. Tutte le entries presenti nel mio grub.cfg sono funzionanti, se ne volete aggiungere altre fate una ricerca in internet per trovare le giuste combinazioni di parametri.

Infine allego uno screenshot del mio Grub su pennetta.

Multiboot_grub

NOTA SOTTO: Se non si vuole formattare in ext4 è possibile che sia necessario caricare i moduli adeguati per leggere il filesystem. Il comando per caricarli attraverso grub.cfg è insmod, ma per il nome del modulo riferisi alla documentazione di Grub2.

ALTRA NOTA SOTTO: Per modificare il file grub.cfg occorre avere permessi di root, essendo la cartella grub proprietà dell’amministratore.

Always On, un modo semplice per tenere il PC attivo

Troppo spesso ho sentito la necessità di disattivare lo screensaver per poter tenere sott’occhio una pagina web in attesa di modifiche oppure attendere l’arrivo di una chat. Risulta però noioso ogni volta dover accedere alle preferenze di sistema per modificare le impostazioni per poi, sistematicamente, dimenticarsi di rimetterle a posto.

È per questo che un bel giorno ho deciso di scrivere un programma che nella sua semplicità facesse quello di cui avevo bisogno: simulare la pressione di un tasto ad intervalli regolari. Ciò che ne è uscito fuori è Always On, ovvero un programmino scritto in Java (cross platform) che consente di scegliere quali tasti premere e con quale intervallo di tempo. Inoltre l’applicazione è dotata di un’icona discreta che si posiziona nella traybar eliminando, durante la sua esecuzione, la finestra che potrebbe intromettersi nel normale flusso di lavoro.

Always On

Come tutti i miei programmi Always On è distribuito sotto licenza GPLv3 ed è scaricabile qui:

AlwaysOn_v1.0_20111001
AlwaysOn_v1.0_20111001_src

Centesimo post!

100E fu così che questo sito raggiunse il centesimo post. Magari non sarà un traguardo all’altezza dei grandi che mi hanno ispirato come ad esempio il caro Bl@ster, sempre in prima linea per tutto ciò che riguarda l’open source, o l’amico Picchio, che ha sempre avuto un commento pronto per ogni mio articolo pubblicato, ma è pur sempre un buon inizio. In fondo questo blog non ha grandi pretese se non quella di essere la valvola di sfogo di un folle come me. 🙂

Inoltre è d’obbligo tener presente che un blog non ha ragione di esistere se non c’è nessuno che lo legge, quindi buona parte del merito di questo traguardo spetta a tutti i miei lettori, tra cui in particolare quelli più fedeli che mi hanno fatto l’onore di aggiungere questo sito al proprio aggregatore di RSS.

Quindi a tutti voi vi dico (e prima che cominci a commuovermi) GRAZIE, GRAZIELLA E GRAZIE A TUTTI!

La macchina di Turing secondo me

Partiamo dal principio. Cos’è una macchina di Turing? All’apparenza è una macchina molto semplice composta da una testina che si può spostare a sinistra e a destra su un nastro infinito. Le sue operazioni consistono nel leggere un valore dal nastro (detto simbolo) e, in base a delle regole ben definite (il programma) e a ciò che la testina legge, decidere di scriverne uno nuovo per poi spostarsi a sinistra o a destra sul nastro oppure terminare l’esecuzione.

Dietro queste operazioni “atomiche”, però, si dimostra che la macchina di Turing è in grado di eseguire ogni tipo di algoritmo computabile. In parole povere questo strumento ha un potere computazionale maggiore di quello di un normale computer, in quanto è teoricamente illimitato in occupazione di tempo e memoria.

Ogni implementazione della macchina di Turing risulta allora un’approssimazione di essa stessa, in quanto non si può disporre di nastro e tempo infiniti, ciononostante entro certi limiti le simulazioni di questa macchina astratta forniscono comunque i risultati attesi. Ciò che vi presento è una mia versione della macchina di Turing scritta in Java, con nastro limitato solo dalla dimensione massima della memoria della macchina virtuale.

YATM

I pacchetti possono essere scaricati agli indirizzi YATM_v1.0_20111001YATM_v1.0_20111001_src (il secondo contiene il sorgente) e ridistribuiti secondo le condizioni della GPLv3. All’interno del pacchetto è presente un programma di esempio che è possibile caricare nella macchina e che stampa sul nastro la frase “Hello World!“. Per il resto basta scrivere un programma adeguato per far fare alla macchina tutto ciò che si desidera. Perché non provare? 🙂