Archivi per MrModd

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? :)

Facebook e le password Caps Lock insensitive

FacebookÈ circolata qualche giorno fa tra i miei feed RSS la notizia che Facebook ha introdotto “una nuova feature” / “un nuovo bug” (a seconda di come vogliate vederla) che prevede la possibilità di autenticarsi anche con una password diversa da quella immessa in fase d’iscrizione. Ovviamente non basta mettere a caso un po’ di caratteri per accedere, però se si attiva il Caps Lock e si digita la propria password il login verrà effettuato comunque. Ciò significa che se “Ciao” è la propria chiave d’accesso, anche il suo complemento “cIAO” è considerato valido ai fini dell’autenticazione.

Una debolezza nella sicurezza del sito? Non necessariamente. Dal punto di vista asintotico, matematicamente parlando, la situazione non cambia: significa solo che un attacco brute force avrà la possibilità di individuare due chiavi anziché una sola tra milioni e milioni (se non miliardi) di combinazioni possibili, il che, in termini di tempo necessario per bucare il sistema, significa che il proprio account verrebbe violato mediamente qualche millisecondo prima del tempo previsto se Facebook non accettasse la password complementare.

Quando WordPress si arrende alla White Screen of Death

Alla fine ogni sistema ha la sua “schermata della morte”. Tutti conosciamo quella di Windows, ma anche Linux e Mac non sono da meno. Mai sentito parlare di Kernel Panic? Ieri sera mi sono accorto che il mio sito era andato giù a causa della White Screen of Death di WordPress che credo sia la cosa più odiosa che possa mai capitare, dato che ti costringe a tirare giù dal dominio tutti i plugin e ricaricarli uno ad uno alla ricerca di quello difettoso. Chi, come me, ha una connessione molto lenta ha grossi problemi a portare a termine questo compito. D’altro canto io ho usato un trucchetto molto banale, invece di scaricare i plugin li ho semplicemente spostati su un’altra cartella et voilà, il plugin corrotto era Visitor Map.

Tanto per concludere metto una carrellata di alcune schermate della morte, sperando non capiti mai a nessuno di doverne vedere una.

Ricordate sempre, Don’t Panic!

BSOD Windows 2000

BSOD Windows 2000

Kernel Panic Linux

Kernel Panic Linux

Kernel Panic Mac

Kernel Panic Mac

BSOD Windows 8

BSOD Windows 8

La verifica in due passaggi di Google

È il caso di dirlo, chi non muore si rivede. Eh si, non sono morto, sono solo stato super impegnato con l’università. Però ora sono di nuovo qui a buttare giù due righe su questa recente feature introdotta da Google: la verifica in due passaggi.

 

Verfica in due passaggi

Chi di recente si è trovato a fare il login in uno dei servizi di Google potrebbe essere incappato in un’insolita schermata che gli chiedeva di inserire il numero di cellulare per rendere più sicuro l’accesso. Come spiega il video dimostrativo di questa pagina, la nuova tecnica di login prevede l’uso di due componenti: una parte da ricordare, ovvero la propria password, e una parte che invece si possiede fisicamente, il proprio cellulare. Al momento dell’accesso al servizio, dopo aver verificato la correttezza delle credenziali di accesso nel modo tradizionale con email e password, Google provvederà ad inviare un sms con un codice al numero di cellulare impostato. Una volta inserito si completa la procedura di accesso e si entra nel servizio desiderato.

Detto così sembra che questa tecnica presenti molte lacune. Ad esempio, che succede se mi perdo il cellulare? E se non posso ricevere messaggi? Quanto tempo devo aspettare prima che mi arrivi l’sms?

In realtà Google ci ha già pensato. Tanto per cominciare il vostro non sarà l’unico numero di telefono impostato nelle preferenze, infatti verrà richiesto anche l’inserimento di un secondo numero di sicurezza che dovrebbe rimanere funzionante qualora il vostro telefono non fosse disponibile. In tal caso il codice di verifica arriverà sul numero di backup permettendovi comunque di accedere ai servizi. Se il problema invece è temporaneo si può risolvere utilizzando uno dei dieci codici che Google consiglia di stampare in fase di abilitazione della verifica in due parti. Ognuno di essi può essere usato una sola volta… Mmm e se li usate tutti e dieci? …Boh… Probabilmente esploderanno i server di Google :D

Per chi non ha tempo da perdere Google consente di salvare il codice di verifica per un periodo di 30 giorni in modo da poter accedere all’account in modo tradizionale in questo lasso di tempo.

Naturalmente in un mondo fatto di smartphone e tablet Google non è certo rimasto con le mani in mano e anzi, ha sviluppato applicazioni per Android, iOS e Blackberry che fanno le veci dell’sms. In realtà fanno molto di più, infatti consentono anche di usare un barcode come seconda fase dell’autenticazione: basta inquadrare il monitor con il cellulare per  evitare di aspettare sms ed inserire numeri.

In realtà però il vero punto di forza di questo nuovo servizio è la possibilità di usare password uniche per accedere all’account di Google attraverso applicazioni, servizi o dispositivi di terze parti. Il vantaggio è notevole, infatti permette di mantenere al sicuro la propria vera password distribuendone invece altre usa e getta. Nell’ipotesi ad esempio dello smarrimento del cellulare basterà revocare la password che è stata usata per sincronizzare le email nel dispositivo per interdire l’accesso all’account da quel telefono.

Se poi decidete di controllare la posta proprio alla mezzanotte di capodanno, forse fareste bene a disabilitare il servizio in anticipo :P

Considerazioni sparse sul futuro dell’informatico

Ormai è diventata una barzelletta, l’informatico è quello che viene chiamato a tutte le ore del giorno per riparare qualsiasi oggetto dotato di un chip elettronico: “Tu che ci capisci, mi ripari il frigorifero?“. Ma fermiamoci un attimo a considerare le circostanze che portano a far credere alla gente che una persona che sa usare un computer sia anche in grado di riparare il tostapane del vicino.

Il mondo IT negli anni ’70-’80

L’informatica così come la conosciamo oggi si è evoluta con una velocità tale da far diventare nel giro di trent’anni dei semplici addizionatori binari in delle macchine talmente complesse da riuscire ad emulare quasi ogni altro dispositivo elettronico. La popolazione degli anni ’70, salvo alcune persone che hanno dedicato anima e corpo allo sviluppo di tale settore, non è stata in grado di seguire passo passo l’evoluzione dei computer reputando questo strumento una macchina troppo complessa. È proprio questo che li ha portati a credere che coloro che “se ne intendono” non sono semplici utilizzatori di computer, ma dei veri e propri geni.

Agli albori dell’informatica, colui che lavorava con i primi calcolatori elettronici, non era solo un informatico, ma conosceva lo scopo di ogni singolo componente del computer ed il più delle volte era in grado di “upgradare” il proprio sistema aggiungendo nuove funzionalità. Se però oggi questo consiste nel comprare una scheda già fatta che con qualche spintarella da un lato e dall’altro si inserisce perfettamente nel computer, all’epoca un aggiornamento consisteva nell’andare in un negozio di elettronica, comprare una carriola di chip dalle sigle improponibili e saldare uno ad uno i singoli componenti sulla scheda madre allacciandoli con le dovute connessioni agli altri componenti preesistenti. Risulta chiaro allora il motivo per cui l’informatico di quarant’anni fa non era solo l’utente posto tra la sedia e la tastiera, ma era in realtà un guru le cui conoscenze si estendevano ben oltre quelle necessarie a soddisfare le proprie mansioni.

L’informatica oggi

Cos’è cambiato da allora? Dipende da come s’intende la domanda. Se si vede dagli occhi della massa tutto è rimasto invariato; la gente che all’epoca vedeva gli informatici come gli “aggiustatutto” ancora adesso hanno la stessa opinione, con la differenza che hanno acquisito 30-40 anni di ulteriore distacco dal mondo IT. Se invece si osserva dal punto di vista dell’utente del PC il mondo è cambiato drasticamente. Le mille levette che permettevano d’impostare manualmente i registri della CPU sono sparite, soppiantate da software che facilitano il lavoro dell’informatico al punto da non richiedere più nessun suo intervento se non l’impostazione dell’ora e del nome utente.

In realtà non è semplice come l’ho descritto. La complessità che si riscontrava quarant’anni fa non è sparita, ma si è trasformata. Ai giorni d’oggi l’informatica è una scienza estremamente vasta che trova applicazioni nei più disparati ambienti di lavoro e questo fa sì che la gente che ai primordi riteneva questa scienza una materia troppo complessa, non ha cambiato opinione nel tempo e ha lasciato che i giovani, ovvero l’internet generation, ovvero quelle persone che hanno un’elasticità mentale tale da assorbire ogni informazione gli viene detta, si avvicinassero al posto loro a quel mondo.

È per questo motivo che è credenza popolare che il semplice utilizzatore di computer sappia riparare tutto ciò che si rompe dentro casa.

Il tecnico informatico dilettante di oggi (differenziato da quello che lo fa per mestiere, facendo le stesse cose ma facendosi pagare a peso d’oro) non deve fare altro che correggere gli errori commessi da quelle poche persone che hanno avuto la forza di staccarsi dalla massa e di imparare i concetti base del computer, non sufficienti però a tener testa ad alcune situazioni particolari.

Il ruolo del tecnico IT nei prossimi 30 anni

I ragazzi d’oggi non rimarranno giovani a vita ed è per questo che è giusto chiedersi come si evolverà l’informatico in futuro. Faccio notare che parlo d’informatico e non d’informatica per un motivo ben preciso: lo sviluppo dell’informatica in quanto settore di ricerca non potrà mai subire delle inflessioni nel corso degli anni: è come cercare di fermare un treno in corsa; ciò che però potrà cambiare sarà la gente che ci lavorerà sopra.

Secondo il mio punto di vista la prima cosa che andrà scemando sarà la relazione informatico – tuttologo. I futuri adulti non potranno più vedere l’informatica come un settore di nicchia, avendo loro stessi vissuto in prima persona una parte della sua evoluzione, è per questo che il tecnico informatico non potrà più essere quello che riattacca la spina della corrente o che fa ricomparire l’icona del cestino sul desktop. La domanda fondamentale allora è: cosa dovrà essere in grado di fare il futuro tecnico? A questo punto si possono aprire infiniti scenari limitati solo dalla propria immaginazione. Una prima grande biforcazione si ottiene chiedendosi se i giovani d’oggi saranno in grado di seguire l’evoluzione del settore IT. Se la risposta è affermativa allora il tecnico informatico del futuro dovrà veramente rimboccarsi le maniche e diventare un piccolo hacker, perché dovrà fronteggiare problemi ai limiti delle proprie conoscenze; se la risposta è negativa, invece, i tecnici diventeranno i figli degli attuali giovani e probabilmente faranno parte della cloud generation. Non avranno più a che fare con parti fisiche del computer, potendo gestire i problemi direttamente da casa loro con un collegamento remoto, sbrigandosela in poco tempo e rimanendo comodamente sdraiati sul divano.

In entrambi i casi è palese il cambio di tendenza, gli anziani che avranno bisogno di assistenza avranno già delle ampie basi sull’argomento che però risulteranno insufficienti, mentre i giovani del futuro potranno fronteggiarsi con i grandi informatici di adesso.

Quale sarà secondo voi lo scenario più plausibile?