Intervista con Simon Long di Raspberry Pi su Raspberry Pi Desktop, UI design e molto altro!
Informazioni importanti: questa intervista è stata fatta all'inizio di luglio 2018, quindi alcune applicazioni a cui Simon si riferisce potrebbero essere già state rilasciate, ecc.
Max: Questa è l'intervista con Simon Long della Raspberry Pi Foundation che è principalmente responsabile di Raspbian il sistema operativo desktop.
Simon: Proprio così.
Max: Molte applicazioni come VeraCrypt rilasciano binari per la piattaforma Raspberry Pi specificamente, ma in questo caso nemmeno i binari ARMv6 - solo ARMv7. Mi stavo chiedendo se c'è una ragione tecnica specifica per questo, mirando al Pi specificamente, perché non fare semplicemente binari ARMv7 generici.
Simon: Quindi non so nulla del caso specifico che hai menzionato. In termini di targeting specifico per il Pi, sono consapevole che le versioni standard ARM hard float di Debian non fanno il miglior uso del Pi. Non sono particolarmente ottimizzate per la nostra piattaforma, è la mia comprensione. Non ho provato a far girare qualcosa che non abbiamo costruito specificamente usando sistemi di compilazione Pi dedicati costruiti sul Pi o costruiti su ambienti di compilazione incrociati progettati per il Pi. Ma sono portato a credere che le cose debbano essere costruite specificamente per esso piuttosto che usare solo roba standard Debian hard float. Non ho familiarità con i dettagli tecnici del perché questo debba essere il caso, ma sospetto che abbia a che fare con le ottimizzazioni per l'hardware. Certamente nel caso di cose ovvie in cui le persone desiderano usare parti di VideoCore, una build standard Debian ARM hard float non ne farà alcun uso. Quindi non si otterranno le migliori prestazioni che si potrebbero ottenere dal dispositivo.
Max: Intendi cose come per esempio queste ottimizzazioni NEON SIMD?
Simon: No - la roba NEON dovrebbe funzionare, perché è sul lato ARM del dispositivo. È più specificamente il lato Video Core del dispositivo, di cui l'accelerazione video è probabilmente la parte più importante. Ci sono anche cose come le unità di elaborazione dei pixel nel VideoCore IV che ti permettono di fare operazioni parallele. Non si ottiene nessuna di queste ottimizzazioni se non si punta specificamente alla nostra piattaforma.
Max: Quindi essenzialmente una piattaforma ARM non è come una piattaforma diversa?
Simon: Il core ARM in sé è lo stesso, ma le periferiche saranno diverse. Una delle periferiche nel nostro caso è VideoCore che fornisce l'accelerazione video e multimediale. Quindi, se scrivete per una piattaforma ARM generica, non ne farete il miglior uso possibile. Per darvi un buon esempio: Chromium. Ogni volta che c'è un nuovo rilascio di Chromium, abbiamo un ragazzo che lavora sull'integrazione della nostra accelerazione hardware video in esso. Se usi Chromium per riprodurre YouTube o qualsiasi altra cosa sulla piattaforma, ottieni il beneficio dell'accelerazione per questo. Se prendi solo la build standard di Chromium ARM, non lo faresti. È soprattutto per cose come l'accelerazione video.
Max: Avete una procedura automatica per farlo?
Simon: No - è una cosa difficile da automatizzare. Il codice cambia significativamente, certamente nel caso di Chromium. In molti casi si tratta di prendere le stesse patch che hai messo sull'ultima versione e applicarle alla nuova versione. Ma come sapete, ogni volta che si cerca di unire le patch tra le versioni, non sempre queste vengono applicate in modo pulito. C'è una quantità di lavoro variabile da mettere a seconda di quanta carne al fuoco c'è stata nel codice di base, ma non è, sfortunatamente, un processo automatizzato. È un caso in cui il ragazzo che ci lavora deve guardare cosa è cambiato tra Chromium 65 e 67 e vedere come questo influisce su queste patch. È una base di codice enorme e cambierà. Mentre le patch sono relativamente piccole, le linee su cui vengono applicate possono essere significativamente diverse tra le versioni dal lato Chromium.
Max: Per riassumere, l'idea è, poiché il Pi è - relativamente parlando - ancora meno potente di un PC desktop, di usare davvero l'hardware il più a lungo possibile e di ottimizzare i binari per esso.
Simon: Esattamente.
Max: Passiamo all'argomento del desktop Raspberry Pi. Quali sono i principali obiettivi e le idee dietro di esso?
Simon: Gli obiettivi principali e le idee dietro di esso ... quando ho iniziato, il mio primo giorno al Pi Eben ed io ci siamo seduti, con Raspbian su cui girava LXDE, e lui ha detto: "Puoi migliorare questo? Ci ho giocato per un po', e ho pensato - beh, sì, è certamente possibile renderlo migliore. Se sapessi come renderlo migliore era la domanda perché non avevo mai usato Linux prima di allora, quindi avevo una bella curva di apprendimento.
Max: In realtà non hai mai usato Linux prima?
Simon: Avevo avviato Linux un paio di volte in via sperimentale, ma non avevo mai scritto codice per Linux, non l'ho mai usato per più di dieci minuti, [prima di iniziare il lavoro al Raspberry Pi].
Max: Una delle ragioni per cui non hai usato Linux era l'ambiente desktop? Il modo confuso in cui è organizzato?
Simon: Ho usato Ubuntu, ho usato Knoppix.
Max: Knoppix - in realtà da un ingegnere tedesco.
Simon: Sì, li ho usati entrambi e ho trovato l'ambiente desktop non intuitivo su entrambi. Non trovo ancora intuitivo l'ambiente desktop di Ubuntu. Mi ci vogliono sempre dieci minuti per cercare di ricordare dove hanno nascosto il terminale. Cose del genere. Sento che un sacco di applicazioni Linux non sono scritte con l'usabilità come priorità. Sono scritte per essere facili da scrivere piuttosto che per essere facili da usare. Il che è comprensibile, dato che nessuno viene pagato per questo. Ma guardando LXDE, com'era allora, ho sentito che c'era un sacco di spazio per renderlo molto più user friendly di quanto non fosse, e certamente, penso, date le due piattaforme con cui avevo più esperienza su quel punto, che erano Windows e Mac, mi sembrava ci fosse un grande divario di usabilità tra LXDE e una di queste. Se volete un obiettivo dichiarato, sarebbe quello di rendere il Raspberry Pi Desktop facile da usare come Windows o Mac. Idealmente come Mac, perché è la mia piattaforma preferita. In termini di renderlo facile, penso che le cose più importanti siano state aggiungere coerenza. Penso che il problema con LXDE è che è una collezione di componenti di problemi diversi che sono stati tutti riversati insieme. Così hai un window manager da un posto, e hai un file manager da un altro, e hai una taskbar da un altro ancora. E non funzionava davvero - per me - come un insieme integrato di cose. Se volevo cambiare il font di sistema, dovevo cambiarlo in tre posti per avere effetto ovunque. E questo è un processo continuo. Nella nuova versione avrete probabilmente visto la procedura guidata di avvio.
Max: Sì.
Simon: Ho già ricevuto critiche sui commenti del blog da persone che dicono che non si dovrebbe usare un wizard di avvio, perché questo scoraggia le persone a guardare il setup [file di configurazione].
Max: Ho effettivamente visto questo commento. La ragione è una specie di - 'Abbiamo fatto le cose in modo difficile ...'
Simon: Esattamente. Questa è tutta la mia frustrazione con le persone che [pensano in questo modo]. È "io ho dovuto soffrire, quindi gli utenti di oggi devono soffrire". Per me questo fraintende lo scopo di Pi. Lo scopo di Pi è sempre stato quello di fornire un ambiente dove le persone possono imparare l'informatica. E se state parlando di imparare l'informatica, per me, questo è imparare come programmare un computer. Non è imparare a configurare un desktop Linux. Perché una di queste è un'abilità utile che puoi usare: una volta che impari a programmare, ti si aprono intere carriere. Ed è quello che abbiamo stabilito di fare. Imparare a configurare un desktop Linux - sì, è utile, se hai bisogno di configurare i desktop Linux. Non è quello che Pi esiste per insegnare alla gente a fare. E così, dal mio punto di vista, voglio togliere di mezzo l'ambiente desktop, in modo che le persone possano semplicemente iniziare a programmare. Questo è uno degli obiettivi principali di ciò che sto facendo: se le persone vogliono cambiare lo sfondo del desktop, o rendere il loro carattere più grande in modo da poter leggere le cose, non dovrebbero dover scavare in dodici file di configurazione per farlo. Dovrebbe essere facile da fare.
Max: Assolutamente. La ragione per cui uso Windows sul mio desktop è che non posso essere disturbato a ... per esempio ho una configurazione multi monitor ... ho una vaga idea di come farlo su Linux, ma dovrei modificare i file di configurazione, e metterci un sacco di tempo.
Simon: Di nuovo, venendo a Linux come qualcuno che non l'ha usato molto prima, più scoprivo su come si dovevano fare questi cambiamenti di configurazione, più mi inorridiva il casino che ci si aspettava dalla gente. Ecco perché la prima cosa che ho fatto è stata scrivere un'applicazione che cambiasse tutte le impostazioni di sistema per voi. Questa mi sembrava la cosa più importante: perché nessuno l'aveva fatto prima? Perché era ancora accettabile che si dovessero aprire quattro diversi file di configurazione [file] per far apparire le cose nel modo giusto? È far sentire tutto come un unico ambiente. Questo è sempre stato il mio obiettivo con il desktop, deve arrivare ad un punto in cui, come su un Mac, non pensi nemmeno al desktop. Il desktop funziona e basta. E se vuoi cambiare l'immagine di sfondo, o rendere il carattere più grande, o vuoi lanciare un'applicazione, è ovvio come fare tutte queste cose. Per me LXDE - mentre forniva una grande base su cui lavorare - e non sto assolutamente denigrando il lavoro dei creatori di LXDE, hanno fatto delle cose fantastiche sotto di esso - aveva solo bisogno di avere quel po' di cura e attenzione in cima. Questo è ciò che ho fornito per renderlo un'esperienza piacevole da usare. Questo è sempre il mio obiettivo - è renderlo piacevole da usare, con un'attenzione specifica, ogni volta che posso, nel renderlo piacevole da usare per le persone che non hanno usato molto un computer prima, o certamente mai usato un sistema Linux prima. È renderlo familiare e più intuitivo.
Max: Ci sono effettivamente problemi di copyright o di design, per esempio come la barra dei menu in alto in MacOS? Dove bisogna fare attenzione?
Simon: Non sono a conoscenza di nulla, no. Tutto questo risale ai tempi della Xerox PARC e del desktop originale. La metafora del desktop è ben consolidata e nessuno la possiede. Non mi sognerei per esempio di prendere le icone di Apple. Penso che le icone di Apple siano cose di bellezza. Avete provato ad ingrandirle? Hanno enormi quantità di dettagli nascosti che non si vedono mai. Se guardate cose come l'icona della posta su un Mac, se la ingrandite, potete vedere che ha un timbro postale che dice "Welcome to Cupertino" e cose del genere. Mettono così tanto impegno in cose come questa. Non c'è modo di mettere icone Apple sul nostro sistema, sarebbe chiaramente una violazione del copyright. E inoltre vogliamo stabilire la nostra identità visiva, ecco perché abbiamo commissionato le nostre icone, ecco perché ho ridisegnato l'aspetto delle nostre finestre, perché abbiamo scelto il nostro set di colori. E niente di tutto ciò è stato copiato da qualcun altro. Sono tutte mie idee su come dovrebbe essere il design. Penso che in termini di concetto generale di un ambiente Windows con menu e barre delle applicazioni, ecc. - questo è più o meno di dominio pubblico. I problemi di copyright sono se si inizia a rubare le risorse delle persone, effettivamente. E noi non lo faremo. Non voglio fare una copia di MacOS. MacOS ha delle ottime idee dietro di sé. Ma questo deve essere qualcosa che sia riconoscibilmente Raspberry Pi. Almeno riconoscibilmente diverso da MacOS. Nello stesso modo in cui deve essere riconoscibilmente utilizzabile come MacOS.
Quando ho iniziato, l'unico marchio che avevamo messo nel sistema operativo era che avevamo un Raspberry sul desktop. A parte questo era LXDE - non avevamo fatto altro, perché non avevamo le persone per lavorarci. È come diceva Steve Jobs - i caratteri sono davvero importanti, la tipografia è importante. Sono cose del genere quando cerchi di creare un'immagine visiva che rappresenti il tuo marchio. Per sembrare un po' pretenzioso. È creare qualcosa che le persone guardano e dicono "oh, questo è il Pi Desktop".
Max: Parlando di tipografia, che tipo di font di sistema usate come predefinito?
Simon: È un font di dominio pubblico di Google chiamato "Roboto". Ho dovuto lavorarci un po' su. È una domanda interessante se sei un appassionato di font. È stata quasi la prima cosa che ho fatto, letteralmente il primo giorno, perché il font di default di LXDE è brutto - e so che si può fare un'enorme differenza ...
Max: Sai cos'era?
Simon: Non riesco a ricordare - era molto orribile. Puoi fare un'enorme differenza nel modo in cui qualsiasi cosa viene percepita semplicemente cambiando i font. Basta cambiare un documento, da un font serif a un font sans-serif, l'intero documento sembra una cosa diversa. È una delle cose più cruciali da fare - Steve Jobs aveva assolutamente ragione su questo - se ottieni il font giusto, molte cose migliorano immediatamente. Così, la prima cosa che ho fatto, è stata letteralmente passare attraverso tutti i font gratuiti che ho potuto trovare - ovviamente ci sono milioni di font nel mondo - ma sapete. Avevo bisogno di qualcosa che fosse libero [da usare], qualcosa che potessi capire come entrare in Linux. Ho passato in rassegna dozzine di font, e non appena mi sono imbattuto in Roboto - mi sono detto, sì, è quello, è come voglio che sia. Fortunatamente era di dominio pubblico, quindi potevamo usarlo. Il problema era - così abbiamo installato il pacchetto Roboto, e poi qualche mese dopo abbiamo fatto un aggiornamento del sistema, e il font era ancora Roboto, ma il font era cambiato. E non veniva neanche lontanamente bene. Google aveva fatto qualcosa alla metrica del font. L'ho guardato e ho detto Eugh! - non è quello che volevo. Quindi, in realtà, quello che abbiamo è una vecchia versione di Roboto, che ha il suo proprio pacchetto. L'ho chiamato Piboto, solo per distinguerlo da Roboto. Non posso continuare a seguire il pacchetto Roboto, perché ha cambiato il font e quello nuovo non mi piace.
Max: In realtà è una sorpresa piuttosto sgradevole, direi. Perché ci si aspetta che i caratteri rimangano gli stessi.
Simon: Non è successo. L'hanno cambiato. E l'hanno cambiato al punto che ho detto "no, non lo seguiremo, prenderemo la nostra versione di questo adesso, e ci atterremo alla mia versione".
Max: Specialmente su schermi molto piccoli - come quelli di Adafruit 2,8" - bisogna avere un font speciale.
Simon: Sì, le dimensioni più piccole dei punti - è necessario avere un font che è progettato per funzionare in situazioni come questa. Quindi siamo su questa vecchia versione di Piboto, come si chiama, e una delle altre cose interessanti - se sei un fanatico dei font - parlando di coerenza. I font ovviamente hanno pesi diversi in Linux - leggero e sottile, medio e pesante, e grassetto, ecc. E alcune applicazioni - questa è in realtà una questione di GTK 2 contro GTK 3 ...; io sono molto a favore di GTK 2, sono davvero abbastanza contro GTK 3. Penso che abbiano preso alcune decisioni davvero sbagliate in GTK 3. Cose come se si esegue un'applicazione GTK 3 sotto sudo, sembra diversa da come appare se non lo si fa, a causa del modo in cui stanno tirando dentro le informazioni sui temi. Quindi se si esegue sotto sudo, non si ottiene il tema GTK 3 originale dell'utente, ma il tema GTK 3 di root. Che potrebbe non essere lo stesso. Cose del genere. Se stai cercando di essere coerente, GTK 3 non è buono come GTK 2. E questo è il punto che stavo facendo su GTK 3 - in termini di ciò che è male in termini di font, è che la sua gestione dei pesi dei font non è buona.
Il font di sistema che usiamo è Piboto Light. Di nuovo, voglio la versione Light, perché la versione Light sembra più bella della versione normale. Ci sono alcune applicazioni - per esempio, Chromium credo sia un'applicazione GTK 3 - in cui si imposta il font su Piboto Light, e si butta via il Light, e si ottiene solo Piboto. Penso che questa sia una cosa di GTK 3, dove alcune delle sue gestioni del peso dei font non sono fatte molto bene. E questo di nuovo, penso che entri nella loro roba sudo e non-sudo, ci sono alcune cose lì dentro che non sono fatte correttamente. Ho effettivamente sollevato dei bug contro [questo] - e loro fanno: "no, si suppone che funzioni così, va bene". Devo lavorare intorno a questo, perché non fa quello che voglio.
Max: Come lo affronta?
Simon: Il modo in cui ho risolto il problema del font con tutto, è che c'è il nostro font, che di solito si chiama Piboto, ora si chiama Piboto LT, perché è il peso leggero. Ora la gente non può romperlo, perché se si sceglie il nostro font, è sempre il peso giusto.
Max: Con Piboto LT c'è solo un peso, solo il peso leggero.
Simon: Puoi metterlo in grassetto - comprende ancora la versione in grassetto e quella in corsivo. Ma quella regolare è quella chiara. È l'unico modo in cui riesco a far sembrare tutto coerente. Con la scelta dei font, penso che il peso sia importante quanto il font stesso, perché cambiare il peso può cambiare l'aspetto del font enormemente. Ho passato molte ore felici a giocare con FontForge, creando la mia versione del font, che ora significa che tutto sembra coerente. Questo è uno dei cambiamenti nella release più recente, è che ora Chromium sta effettivamente usando lo stesso font di tutto il resto, mentre prima non lo faceva. Prima usava Piboto in un peso normale, al contrario del peso Light.
Max: Penso che questa sia una delle cose che la gente nota - sembra un po' fuori - almeno subliminalmente.
Simon: Subliminalmente è un buon modo di vedere la cosa - ho sempre pensato che qualcosa non fosse del tutto giusto su Chromium. Ma guardavo le impostazioni, e le impostazioni dicevano di avere il font Light. E non appena ho fatto queste modifiche - questo era ciò che non andava in Chromium. Chromium ora sembra giusto. Chromium ora corrisponde a tutto il resto. È una di queste cose - se non la correggi la prima volta che la noti - ti ci abitui. E poi pensi, beh, è solo il modo in cui è.
Far funzionare Chromium è stato un grande passo in primo luogo. Chromium è stato difficile, farlo funzionare correttamente con il window manager e farlo apparire bene nel window manager. Una delle mie grandi odi è quella delle applicazioni che vogliono apparire come vogliono loro, piuttosto che come il sistema vuole che appaiano. E Chromium è uno di quelli che cerca di usare i propri colori per le barre delle finestre e cose del genere. Non gioca bene con i gestori di finestre. Ho speso un sacco di tempo quando l'abbiamo inserito, cercando di renderlo effettivamente gradevole.
C'è un aneddoto al riguardo. Abbiamo Chromium nel sistema. E Eben usa Chrome su altri sistemi. Io non uso Chrome, perché sono un utente Mac, uso Safari.
Max: C'è Chrome per ...
Simon: C'è Chrome per Mac, non lo consiglierei perché fa esattamente quello che ho detto allora - sembra un'applicazione Google su un Mac, piuttosto che sembrare un'applicazione Apple sul Mac. Eben è abituato ad usare Chrome. E Chrome colora il suo bordo, così hai le schede e hai un particolare sfondo colorato - ed Eben era abituato a questo, perché lo usava su un Mac. Ho dato un'occhiata, e non si adatta al resto delle nostre applicazioni, deve cambiare. Stavo giocando con varie combinazioni di colori, e ho attivato l'opzione per utilizzare le cornici di Openbox - il window manager di LXDE - con Chromium. Perché di default, si perde la cornice della finestra. Avendo una cornice per la finestra, Eben ha detto "non sembra giusto con una cornice per la finestra, non sembra più Chrome". Ho detto, "fidati di me, questo sarà giusto. Ma deve avere la cornice. Perché deve combaciare con tutto il resto". Ed Eben stava facendo una specie di borbottio e mormorando, "stai facendo un grosso errore - non devi farlo" Ho detto "fidati di me, questo sarà giusto alla fine". Il problema era che lei aveva i colori di Chromium all'interno della nostra cornice della finestra. Avevo bisogno di capire come ricolorare la finestra che Chromium ti dà - lo sfondo dietro le schede. Avevo bisogno di farlo corrispondere al colore che avevamo usato. Mi ci sono voluti alcuni giorni per cercare di capire dove fosse l'impostazione e l'ho cambiata. Eben si è avvicinato alla mia scrivania dopo che ho fatto questo, e gli ho detto "Dai un'occhiata a Chromium ora. "Lui l'ha guardato e ha fatto: "Va bene" ho detto "Ti ho detto che sarebbe andato bene". Si tratta di coerenza. Si tratta di farlo apparire nel modo in cui ti aspetti che appaia. Quello che Eben aveva visto, era qualcosa che non assomigliava a Chrome e non assomigliava a noi.
Max: Qualcosa di completamente diverso, allora?
Simon: Sì, sembrava sbagliato. Ma sapevo che per farlo bene bisognava azzeccare i colori e i caratteri. E non appena i colori sono giusti, e corrisponde, Eben ha detto "Oh, va bene". "Sì, te l'avevo detto che sarebbe stato così. È perché ora ci assomiglia. Sei abituato a vederla come Chrome e quello che stavi vedendo è questa fase imbarazzante nel mezzo in cui non l'avevo ancora finita". Ma questo è il motivo per cui cose come il window manager sono importanti. È un modo molto importante per dare un look and feel coerente. Quindi le applicazioni che non giocano bene con il window manager mi infastidiscono, perché il window manager è lì per un motivo.
Max: Questa è una delle cose che mi infastidiscono del desktop Linux - la coerenza come dici tu. C'è credo il GTK, poi c'è l'ambiente desktop KDE ...
Simon: E la cosa sul GTK è - se qualcuno dice che sta scrivendo un'applicazione per noi, su cosa dovrebbe basarla, la mia risposta è basarla su GTK 2, perché ho speso un sacco di tempo per far funzionare bene il nostro tema GTK 2. Ha l'aspetto che voglio io. Ogni volta che GNOME ha rilasciato un nuovo GTK 3, hanno giocherellato con il tema GTK 3. E io ho passato settimane a cercare di far combaciare i temi. In modo che un'applicazione GTK 3 sembrasse un'applicazione GTK 2 su di noi. E ogni volta GNOME cambiava qualcosa. Come ho detto GTK 3 non sembra fare i temi così bene come faceva GTK 2. GNOME sembra essersi spostato verso l'avere un tema che è cablato in esso, e sei davvero incoraggiato a non cambiarlo, mentre con GTK 2 avevi sempre il tema che volevi. Ho creato effettivamente un tema GTK 3 che mette in ombra il nostro tema GTK 2. E ogni tanto GNOME fa qualcosa in GTK 3 che non posso replicare in GTK 2. O che si scontra male con il nostro tema. E allora devo passare attraverso questa fase di cercare di rendere i due look il più simili possibile, perché la gente nota che questa applicazione ha un aspetto leggermente diverso. Non si nota necessariamente in modo esplicito, ma subliminalmente e non sembra del tutto giusto.
Max: È una vera sfida, no? È qualcosa che non si dovrebbe fare su un Mac o Windows.
Simon: No, perché c'è solo un toolkit, giusto. E l'altra cosa che entra in gioco di recente è Qt. Perché il nuovo visualizzatore PDF - quando l'abbiamo introdotto questa volta - voglio dire Xpdf è così vecchio e datato, dovevamo liberarcene. Era una delle cose sulla mia lista il primo giorno, abbiamo bisogno di un nuovo visualizzatore di PDF, e finalmente sono riuscito a farlo. Ho provato tutti i visualizzatori di PDF che si possono installare su Raspberry Pi. Sto guardando le cose in termini di look and feel, come si comporta, fa - perché l'interfaccia di Xpdf è una lista di pagine sul lato, piuttosto che essere in grado di continuare a scorrere le pagine, cose del genere. E aveva bisogno di sentirsi come un moderno visualizzatore di PDF. E il miglior candidato era Qpdf viewer, che è un'applicazione Qt. Quindi non assomigliava a nient'altro sulla piattaforma. Quindi la mia sfida successiva era: devo fare in modo che il tema di Qt assomigli il più possibile al nostro tema GTK. E questo ha richiesto diverse settimane di lavoro. Di nuovo, perché ho costruito questa applicazione che cambia cose come le impostazioni della finestra e le impostazioni dell'aspetto della finestra. Quindi questo deve essere personalizzato per assicurarsi che cambi i [file di configurazione di Qt], se si cambia qualcosa lì dentro. Sono ancora frustrato - sono riuscito a farli sembrare praticamente identici. L'unica cosa che non posso fare sono le scorciatoie automatiche. Così quando tieni premuto il tasto Alt, le sottolineature appaiono sulle scorciatoie del menu. Qt non lo supporta. In realtà ho passato un paio di giorni a spulciare il codice di Qt per capire - ho aggiunto questo a LibreOffice. LibreOffice non aveva questo, finché non l'ho aggiunto.
Max: Su cosa è effettivamente basato LibreOffice.
Simon: LibreOffice è il suo proprio toolkit, completamente diverso. E non supporta l'evidenziazione dell'autoacceleratore, quindi il codice di LibreOffice che lo fa è stato scritto da me. Perché ho deciso che ne avevamo bisogno. E ho fatto l'upstreaming. E hanno detto, "Oh, questo è contro una vecchia versione - puoi farlo contro la nuova versione". E io ho detto: "No, non ho davvero tempo per farlo. Ecco qui, fatene quello che volete - è per noi piuttosto che per voi". E nel giro di una settimana qualcun altro in LibreOffice aveva afferrato questo codice che aveva aspettato che qualcuno scrivesse e l'aveva portato nella versione [recente]. Sembrava che avessi fatto la cosa che la gente stava aspettando da un po', il che è una bella sensazione. Ho cercato di fare la stessa cosa per Qt, sarebbe un incubo aggiungerlo. Non esistono gli agganci per farlo - i messaggi per dirti dove viene premuto il tasto. Ho passato qualche giorno a guardarlo e ho deciso che avrei dovuto vivere senza. Questa è la principale differenza visiva tra il visualizzatore Qpdf e altre cose sulla piattaforma - ha i trattini bassi sotto tutti i suoi acceleratori per tutto il tempo e non si può spegnere. Ad un certo punto potremmo risistemare il tutto in GTK, ma è un grosso lavoro.
Max: Quanto lavoro sarebbe, in realtà, riscrivere il visualizzatore Qpdf in GTK?
Simon: Non lo so, ad essere onesti. È qualcosa che Eben mi ha chiesto di considerare. Il rendering effettivo dei PDF è tutto fatto da una libreria di terze parti. Quindi va bene - è solo ricreare l'intera shell intorno ad essa. E la shell non è enormemente complicata. Hai una barra degli strumenti, hai dei pulsanti, hai dei menu. Dipenderà molto da cose come, quanti dialoghi di preferenza ci sono lì dentro, perché dovrai rifare ognuno di questi.
Max: Essenzialmente bisognerebbe andare a riscrivere tutta l'interfaccia.
Simon: Sì, riscrivere tutto. Non c'è modo di farlo con un processo automatizzato, bisognerebbe farlo a mano. Quindi sì, penso che sarebbe un lavoro troppo grande. Ma sarebbe bello, solo per sbarazzarsi degli underscore. (ride). Vogliamo passare tre mesi ad armeggiare con questo, per sbarazzarci delle sottolineature? Probabilmente no, ci sono probabilmente cose migliori a cui potrei dedicare il mio tempo.
Max: Ha davvero la lettura a schede?
Simon: Penso che lo faccia, non sono sicuro - non l'ho mai acceso.
Max: Un'altra cosa - ho personalmente lottato con i visualizzatori PDF di Linux con la compilazione di moduli PDF. È una cosa importante per il lavoro d'ufficio, come i governi.
Simon: Sì, lo so. Devo controllare, non ho mai provato.
Max: Questa particolare caratteristica sembra difficile da fare.
Simon: Ci darò un'occhiata - è una buona domanda.
Max: Tornare al desktop di Raspbian. Quali altri problemi hai intenzione di risolvere?
Simon: Ora ci sto lavorando da quasi quattro anni. Penso di averne la maggior parte come vorrei che fosse. Penso che quello che stiamo cercando di fare ora è personalizzare qualche icona in più. Le icone sono un lavoro molto grande - una singola icona richiede molto lavoro. Devi assicurarti che funzioni in tutte le diverse dimensioni, stai facendo tutto questo [massaggio] a livello di singolo pixel in ciascuna delle dodici dimensioni. Così tutte le nostre icone di sistema sono fatte, penso che il nostro prossimo passo sarà quello delle icone della barra degli strumenti. Attualmente usiamo un tema di ripiego, quindi provengono da - credo sia un tema di ripiego di GNOME che usiamo al momento. E faremo cose come guardare le barre degli strumenti in LibreOffice, nell'editor di testo e nel visualizzatore di PDF, in modo che queste inizino ad essere in linea con il nostro look and feel.
Max: Perché LibreOffice usa le proprie icone...
Simon: C'è un set standard di icone che sono definite per gli ambienti desktop. Cose come taglia e incolla, file e copia, sono tutti standard. Ci sono diversi temi di icone, che hanno tutti le loro interpretazioni di quelle, LibreOffice poi aggiunge alcune delle proprie su questo. Usano il tema delle icone per molte di esse. Quindi hai già il problema che hai due designer che lavorano sulle icone e che sembrano diverse - e di nuovo questa è una cosa che stiamo cercando di evitare. Stiamo cercando di fare in modo che tutte le icone sembrino provenire dallo stesso posto. Perché tutte le icone di Apple sembrano provenire dallo stesso posto. Per lo più. Sta solo cercando di ottenere una coerenza visiva. Quindi, le icone della barra degli strumenti sono penso la prossima area che guarderemo. In termini di look and feel generale, penso che siamo quasi ad un punto in cui la gente si è abituata al modo in cui appare. Quello che prenderei in considerazione di fare in futuro è quello che Apple ha fatto quando si è spostata da qualsiasi versione di MacOS che era - Apple ha avuto un cambiamento abbastanza importante dell'UI.
Max: Facevano questa cosa del materiale naturale, e poi si sono allontanati...
Simon: Hanno avuto un cambio di font. Penso che quando sono passati dai gatti alle montagne abbiano cambiato il carattere.
Max: Non hanno usato l'Helvetica?
Simon: No, questo non è il font di sistema. Non riesco a ricordare. Hanno fatto un cambiamento con il font, e hanno fatto diverse modifiche all'UI. Non erano grandi, ma in un certo senso hanno spostato un design dell'interfaccia che a quel punto era vecchio di dieci anni o giù di lì, e all'improvviso è salito un po'.
Max: Un design rinnovato.
Simon: Esattamente. Non ho intenzione di cambiare il nostro look and feel generale, perché penso che sia abbastanza buono così com'è, ma stiamo considerando che forse faremo una cosa simile - per mostrare che abbiamo fatto una nuova versione quando passeremo a Buster [nota del trascrittore: prossima versione di Debian]. Una delle cose che è leggermente frustrante è che quando siamo passati da Jessie a Stretch, nessuno se n'è accorto. (ride) Perché non c'è alcuna differenza visiva - sembrano esattamente le stesse. "Oh, ora abbiamo Stretch - grande. Qual è la differenza? Beh, ha lo stesso aspetto".
Max: Forse potresti fare delle immagini di sfondo diverse?
Simon: Le foto dello sfondo sono adorabili - sono fatte da un ragazzo qui che fa molta fotografia. E sono bellissime. Appena le abbiamo viste, Eben ed io ci siamo seduti, e abbiamo guardato attraverso e quella con la strada - abbiamo detto che sarà lo sfondo. E per quanto mi piaccia la foto, l'ho vista spesso adesso. Ed è divertente - è una delle cose che ogni volta che vedo una foto di una Raspberry Pi Jam o un Code Club, è solo il mio design del desktop - è una cosa meravigliosa vedere che la gente lo sta usando. Ma hanno sempre la stessa immagine del desktop. Ed è come: abbiamo messo un sacco di altri, provate alcuni degli altri ... ! Questa è un'altra cosa che potremmo aggiornare per la nuova [release]. Ho scritto qualcosa per cambiare casualmente lo sfondo del desktop all'avvio, era una delle cose che qualcuno ha suggerito, ma sono stato distratto da qualcos'altro dopo averlo finito, così non l'ho mai attivato. Questo è un buon punto - lo attiverò nel caso la gente lo voglia. Alcune delle altre immagini sono adorabili.
In termini di look and feel generale ne sono soddisfatto. L'altra cosa che stiamo cercando di fare è, il primo giorno avevo una lista di applicazioni che volevo avere come standard nell'immagine. E ora siamo arrivati al punto - cose come avere una suite per l'ufficio, avere la posta elettronica, avere un bel visualizzatore di PDF, ovviamente tutti gli strumenti di programmazione che abbiamo, un buon editor di testo, ma uno di quelli che ancora manca è un lettore multimediale nella GUI. E in realtà la ragione per cui non ne abbiamo ancora lanciato uno, è che volevamo avere la stessa accelerazione hardware che abbiamo per la riproduzione video in Chromium, ecc. È stato sulla mia lista da fare letteralmente dal primo giorno. Ora ci stiamo effettivamente lavorando - non posso promettere una data in cui apparirà, ma è effettivamente in corso e spero di vederlo abbastanza presto. È l'unica cosa che sento che ci manca. È basato su VLC.
Max: Sarebbe assolutamente fantastico. È uno dei migliori giocatori. Non ci sono annunci pubblicitari.
Simon: È un buon prodotto. Riproduce tutto. Lo uso a casa, lo uso sul mio Mac. Era la cosa più ovvia da usare. Stavano [già iniziando ad abilitare l'accelerazione hardware nel codice].
Credo che questa sia l'ultima applicazione che avrei voluto vedere e che non abbiamo inserito. Il visualizzatore PDF è stato aggiornato, e con questo, abbiamo un set di funzionalità che è paragonabile a quello che si ottiene fuori dalla scatola su Windows o Mac. Che è dove volevo arrivare. Quindi le cose che la gente si aspetta di trovare in un computer al giorno d'oggi. Volevo assicurarmi di avere tutto questo. E naturalmente l'altra cosa che abbiamo introdotto con l'ultima versione è l'applicazione software raccomandata, che di nuovo è qualcosa che volevo fare abbastanza presto. Perché aggiungere e rimuovere software, se sei un utente esperto e sai [come usare] apt, va bene. Ho aggiunto un programma di aggiunta e rimozione GUI abbastanza presto, che è stato un bel po' di lavoro per riordinare, non riesco a ricordare come si chiama. L'UI era un po' un incubo quando l'ho vista per la prima volta. Ancora una volta ho fatto questa cosa in cui ho guardato tutti i pacchetti che sono là fuori per trovare quello che si adatta meglio a noi nell'aspetto e nella sensazione, ma [quasi nessuno] lo usa. Perché c'è un numero enorme di programmi, e non ci sono informazioni su quali siano quelli buoni, e non ci sono informazioni su cosa potrebbero fare. E in effetti si possono fare aggiornamenti di sistema e cose del genere. Ma di nuovo, nessuno lo usa per questo, tutti usano la linea di comando. Il che va bene. Ma sentivo che - molti anni fa, prima che iniziassi, avevamo il Pi Store e cose del genere, e quello è un po' morto.
Max: Qual è stata la ragione della morte del Pi Store?
Simon: Penso che la gente abbia semplicemente smesso di sostenerlo. Non so se ci sia mai stato molto. Penso che sia stato fornito da una terza parte e che abbia semplicemente smesso di essere supportato. Non credo che sia stata una decisione consapevole ...
Max: Non è mai veramente decollato...?
Simon: No, penso. La gente è abituata agli App store su piattaforme come i dispositivi mobili e in effetti su Mac e Windows al giorno d'oggi - e una delle cose che Eben ha sempre detto, è che l'intero pacchetto di download è in parte sul desktop, e in parte sulla cura del software. Sul fornire software che pensiamo sia buono. E fino ad ora l'unico modo in cui siamo stati in grado di farlo è di mettere tutto nell'immagine, perché altrimenti la gente non lo troverebbe. E così l'immagine è diventata sempre più grande, sempre più grande, man mano che la gente ci forniva il software. Ed è fantastico che le persone ci forniscano questo software - non voglio scoraggiare le persone dal farlo - alcune delle cose che abbiamo avuto sono gratuite per i nostri utenti e che altre persone devono pagare. È fantastico.
Max: La roba di Wolfram ...?
Simon: La roba di Wolfram. RealVNC. Questo è software commerciale, che gli utenti Pi ottengono gratuitamente. E siamo molto grati alle aziende in questione per averlo fatto. Ma l'unico modo per far arrivare questo software alla gente è: "OK lo aggiungiamo all'immagine". E l'immagine ora sta crescendo - l'immagine è ora di 1,75 GB. È grande. So che molte persone pensano che "sì, ora abbiamo la banda larga veloce. Quindi chi se ne frega". Ma mi ricordo quando per scaricare un gigabyte ci volevano tre o quattro ore.
Max: Anche alcuni dei paesi in cui la fondazione Raspberry Pi vuole andare non hanno quel tipo di banda larga.
Simon: Precisamente. Quindi credo che sia troppo grande. L'intenzione del software raccomandato era di ridurre la dimensione dell'immagine scaricata, ridurre il numero di cose nei menu, solo e cercare di decomprimere un po' le cose. Perché ancora far sapere alla gente, "Ehi, ci sono queste grandi applicazioni - sono gratuite, è facile installarle. Perché non le provate". Ma senza costringere tutti a scaricarle continuamente, cosa che mi è sempre sembrata un po' ingiusta: "devi scaricare tutto quello che noi diciamo che devi".
Quindi sì, penso che sia un buon posto per essere - che abbiamo effettivamente il nostro piccolo app store con il vantaggio che tutte le applicazioni sono gratuite.
Max: In realtà è anche molto importante per le persone che sono nuove. Linux - funziona un po' diversamente da Windows. Su Windows si scarica il programma di installazione e lo si esegue. Penso che il modo in cui Linux lo fa sia in realtà molto più intelligente, con il gestore dei pacchetti.
Simon: È molto più facile. apt è ottimo, ma ancora una volta uno dei miei obiettivi è che la gente non debba usare un terminale. Di nuovo [i vecchi utenti Linux vanno]: "Perché non stai insegnando alla gente ad usare il terminale?" - Beh, non dovrebbero usare un terminale, non sono abituati ad usare un terminale. Il terminale è lì, se vuoi usarlo, ecco perché è sulla barra delle applicazioni, perché è una cosa utile. Ma per qualcuno che ha sempre e solo visto un Mac o un PC Windows, l'idea di dover improvvisamente iniziare a digitare qualcosa per installare programmi - no. Ci si può arrivare dopo. Uno degli obiettivi di progettazione è sempre stato - la gente non dovrebbe vedere cosa succede dentro un terminale. Dovrebbe essere tutto "punta e clicca".
Max: Vuoi solo un facile onboarding.
Simon: Esattamente. È tutto lì e sotto il cofano, se vogliono giocarci. Se volete capire come è configurato un sistema Linux, o il desktop X, andate a guardare la mia applicazione che cambia i file di configurazione. Perché questo vi mostra dove sono i file, cosa dovete fare, quali sono le linee importanti nei file. Penso che il mio C non sia probabilmente il miglior strumento di apprendimento del mondo, ma se puoi leggere il mio C, puoi vedere - questo è un buon punto di partenza. Quindi come si cambia il carattere di sistema - "oh, c'è una funzione qui se vuoi cambiare il carattere di sistema - cosa fa"?
Se si arriva al punto in cui si sta imparando a programmare si vuole leggere del codice di esempio. Cerco di scrivere codice che sia ragionevolmente leggibile. Puoi dargli un'occhiata e poi imparare da esso. È quasi uno strumento che aiuta le persone ad imparare come configurare un desktop Linux - oltre ad un modo di farlo in sé.
Max: Una delle cose che hai menzionato prima era Buster, la prossima release di Debian. Che tipo di cambiamenti ti aspetti da essa in generale e per il Raspberry Pi in particolare?
Simon: Non ho guardato molto Buster. Abbiamo avuto un grande cambiamento quando siamo passati da Wheezy a Jessie, a causa di systemd.
Max: Penso che sia stato molto importante per la velocità di avvio.
Simon: Sì, la velocità di avvio ha fatto un'enorme differenza. Non ho guardato in profondità Buster, ma non sono a conoscenza di simili enormi cambiamenti. Buster sembra essere più evolutivo che rivoluzionario sotto il cofano. Penso che con tutta questa roba - [come ho detto] la maggior parte delle persone non ha notato il cambiamento tra Jessie e Stretch. Non penso che ci saranno enormi cambiamenti dal punto di vista dell'utente in Buster. I cambiamenti penso che saranno per lo più evolutivi tra le applicazioni. Ma non ho ancora fatto un'enorme quantità di indagini. Solo per darvi un'idea - è probabile che Buster non si blocchi fino al primo trimestre del prossimo anno, è probabile che diventi la versione stabile intorno al secondo trimestre del prossimo anno. Quando abbiamo fatto Jessie, eravamo abbastanza indietro. Penso che il nostro rilascio di Jessie sia stato circa 6 mesi dopo quello di Debian. Stretch eravamo molto più vicini, penso che fossimo due mesi dopo quello di Debian. E voglio essere nello stesso [tipo di tempo questa volta]. Quindi inizierò a guardare a Buster nella prima metà dell'inizio del prossimo anno. Inizierò a guardare cosa abbiamo bisogno di portare su Buster. Dal mio punto di vista la maggior parte delle cose è cercare di assicurarsi che la tematizzazione funzioni ancora, assicurarsi che tutto sia ancora a posto, assicurarsi che la configurazione non sia cambiata. Mentre LXDE non ha un'enorme quantità di cambiamenti, perché non è sotto un'enorme quantità di sviluppo attivo, ma ci saranno comunque dei cambiamenti. E ci sarà una nuova GTK 3, e posso dire ora senza nemmeno guardarla che probabilmente passerò un mese solo cercando di far funzionare tutto correttamente sotto GTK 3 ancora. Metà delle funzioni saranno tutte cambiate, e ci saranno cose diverse ... ci sono già stato. Voglio essere in una posizione in cui saremo in grado di andare live con la nostra versione di Buster abbastanza presto dopo Debian, entro un mese o giù di lì. Ora abbiamo l'esperienza di farlo un paio di volte, quindi sappiamo come va. Quindi sì, speriamo di fare Buster relativamente presto dopo Debian l'anno prossimo.
Max: Abbiamo parlato di coerenza, abbiamo parlato di un modo semplice per accedere ai pacchetti, pacchetti curati, per fornire un buon set di pacchetti predefiniti. Cos'altro pensi che manchi in un moderno ambiente desktop Linux?
Simon: Un'altra cosa da menzionare è lo Startup Wizard ovviamente. Era qualcosa che volevamo fare e cercare di rendere l'effettivo processo di accensione per la prima volta un po' più [facile] per le persone da configurare.
Max: Credo che abbiate un link per lanciare le applicazioni raccomandate alla fine della procedura guidata di avvio?
Simon: Non ce l'abbiamo al momento, ma era qualcosa che abbiamo considerato di fare. Lo Startup Wizard è stata una cosa interessante da fare, perché in realtà è nata dall'esigenza di impostare un paese per il WiFi. Per i 5 GHz. Non potevamo certificare il nostro hardware wireless senza questo - devi forzare l'utente a selezionare un paese WiFi se vuoi ottenere la certificazione WiFi. E abbiamo giocato con vari modi per farlo. Nessuno di essi era particolarmente ideale dal punto di vista dell'utente. E abbiamo anche cose come - molti utenti Pi non cambiano mai la password. Abbiamo fatto varie cose nel corso degli ultimi anni per cercare di aumentare la sicurezza - in modo che non ci sia un buco aperto nel Pi, in modo che la gente non possa entrare SSH usando una password di default, ecc. Mi infastidisce che dobbiamo fare questo. Mi infastidisce che la gente voglia fare cose criminali, ma questa è la vita. In un mondo ideale non avremmo dovuto farlo. È una vergogna che l'abbiamo fatto. Abbiamo sempre cercato di mantenere un equilibrio tra il non sconvolgere troppo gli utenti rendendo la sicurezza troppo odiosa e anche non avere il potenziale per il Pis delle persone di essere preso in consegna e usato per scopi maligni. Penso che ogni volta che abbiamo fatto un cambiamento ho monitorato attentamente i commenti sui forum dopo. E finché la metà di loro dice "siete andati troppo lontano", e l'altra metà dice "non siete andati abbastanza lontano", allora abbiamo fatto la cosa giusta. Perché non diranno mai tutti "Ehi, hai fatto esattamente la cosa giusta". Non riuscirai mai a far felici tutti, certamente con cose come la sicurezza. Quindi volevamo provare a trovare un modo per - di nuovo senza forzare la gente - "Vorresti cambiare la tua password". Questo è qualcosa che qualcun altro aveva suggerito.
Stavo giocando con il codice di localizzazione di Linux - modi di impostare la tastiera e cose del genere. Di nuovo, questo è enormemente complicato per un utente, un utente che non ha mai visto qualcosa di simile prima. E ho iniziato a pensare, forse possiamo combinare molte di queste cose in un unico posto. Lo Startup Wizard è cresciuto da questo. La prima parte di esso è stata il mio andare attraverso e ordinare, "OK, qual è il numero minimo di cose che posso chiedere ad un utente di impostare, il che significa che alla fine della giornata hanno il WiFi funzionante, hanno la lingua giusta, la loro tastiera è giusta, questo genere di cose. E qual è il numero minimo di controlli che posso dare loro per farlo". Quello che ne è risultato è qualcosa che in qualche modo è abbastanza restrittivo - e sapevo che avremmo ricevuto lamentele su questo - [per esempio se] sono in Giappone ma voglio usare il mio Pi in inglese, e non posso. Beh, so che non puoi, ma ho detto in anticipo - e non abbiamo tolto nessuno dei vecchi strumenti di configurazione, sono ancora tutti lì - ma di nuovo, questo è per la maggior parte degli utenti che hanno un caso d'uso semplice, ora dicono solo, "Sono in questo paese, sto usando il mio Pi in questa lingua che usano in questo paese e il mio fuso orario è questa città in questo paese". E non devono vedere l'enorme mucchio di altre cose, che altrimenti dovrebbero guadare.
Ho sbagliato qualcosa in esso - una cosa divertente che è successa: non c'è una mappatura automatica in Linux tra il codice del paese e il codice della tastiera. Molte tastiere usano il codice del paese come nome, molte altre no. E non avevo notato quanto fosse diffuso il problema che non c'era una mappatura uno a uno. Così, quando abbiamo lanciato questo, la prima volta che ho saputo di questo è stato quando qualcuno in Argentina si è lamentato che stava digitando sulla sua tastiera ora e stava uscendo in arabo. E sono andato a dare un'occhiata, e ho visto che "OK, hai ragione - perché l'Argentina ha un codice paese di AR, non c'è una tastiera AR, c'è una tastiera ARA che è usata da ogni paese del Medio Oriente. OK, dobbiamo sistemare la cosa". Qualcuno mi ha fatto notare che non c'è un database in Debian stessa, l'unico posto dove c'è un database per questo è nell'installatore Debian. Qualcuno mi ha aiutato ad indicarlo. Questo è ciò che ho fatto la scorsa settimana, tirando fuori quel database [e aggiungendolo]. Quindi, le tastiere nel prossimo rilascio dovrebbero essere più accurate. Questo è il genere di cose che si scopre davvero solo quando si spinge la cosa fuori e decine di migliaia di persone in tutto il mondo iniziano ad usarla, e iniziano a raccontare i problemi che stanno avendo. Con tutto questo, sapevo che non c'è modo di farlo uscire e averlo perfetto la prima volta. In casi come questo, è davvero utile ricevere le segnalazioni di bug. Ti aiutano a vedere i pezzi che ti sono sfuggiti.
Ovviamente siamo nel Regno Unito. Non posso testare le traduzioni in tedesco delle cose. Perché non posso leggere il tedesco, beh posso leggere il francese, posso leggere un po' di tedesco. La localizzazione in Linux è in realtà un problema enorme - dato che stavi chiedendo dei problemi. Non che io pensi di poterlo risolvere, ma penso di poter fare delle modifiche per renderlo migliore. Il supporto per la localizzazione non è buono come dovrebbe essere. Ti faccio un altro esempio. C'è un'applicazione chiamata Zenity. E Zenity è usato per creare dialoghi GTK da script di shell. Potete dirgli "creami un dialogo di password, o creami una listbox o qualcosa del genere". E Zenity creerà poi un controllo con cui l'utente può interagire fatto in GTK, quindi corrisponde a qualcosa. E usiamo questo per alcune cose. Ho notato che in alcuni di questi dialoghi di Zenity, ho cambiato il sistema in tedesco, e metà del testo nella finestra di dialogo di Zenity diventava tedesco, e metà rimaneva in inglese. Ho cercato nei database delle localizzazioni di Zenity, e c'erano traduzioni in tedesco e in francese per tutte le stringhe. Non riuscivo a capire perché le cose non venivano tradotte, così ho passato qualche ora a esaminare il codice. Ed è venuto fuori che, nella versione di Zenity che viene fornita con Stretch, metà delle stringhe di traduzione sono rotte. Quindi il codice non tradurrà mai le stringhe correttamente.
Max: Come mai sono rotti?
Simon: Penso che quello che era successo, era che la gente aveva cercato di passare da un sistema di fare le cose ad un altro sistema di fare le cose ed era andata a metà strada. Ma nessuno se n'era accorto. Mi sembra strano che in nessun momento un utente Pi tedesco sia venuto da me a dirmi: "Beh, aspetta: perché solo metà della roba nella scatola è in inglese e metà in tedesco?"
Max: Penso che gli utenti siano abituati al fatto che il computer non funzioni.
Simon: Questo è esattamente il punto. Certamente con Linux - ho un collega seduto accanto a me che è un appassionato di Linux, non toccherebbe una macchina Mac o Windows se lo si costringesse - è in parte ucraino e molto spesso fa test in diverse lingue. Ho detto, "hai mai notato che queste finestre di dialogo hanno metà del testo in ucraino e metà in inglese? E lui ha detto: "beh, è solo il modo in cui funziona". E io "no, non dovrebbe essere così! Ora questo è stato risolto. Nell'ultima versione di Zenity, qualcuno ha notato che questo è rotto. Quindi ora stiamo spedendo la versione buster di Zenity sopra Stretch. Abbiamo fatto un backport per farlo funzionare. Ma sono cose come questa. La localizzazione è molto facile da sbagliare. A volte le persone presentano richieste di pull sul nostro codice. Se le persone presentano richieste di pull per correzioni di bug e cose del genere, sono molto felice di accettarle. Quando le persone sono creative e decidono, scriverò questa nuova cosa per te - poi invariabilmente [scoprirò] che non hanno messo il supporto alla localizzazione, e cose del genere. Perché non pensano di farlo. Lo fanno semplicemente nella loro lingua. Le persone che hanno pensato al supporto di localizzazione in Linux - è in realtà un sistema abbastanza buono, funziona molto bene. E ci sono molti strumenti che ti aiutano a farlo bene. Ma di nuovo, come dici tu - la gente non tende a lamentarsi quando non funziona. Semplicemente accettano, "beh, questo non funziona". Non c'è motivo per cui non dovrebbe funzionare bene - perché [Linux ha] un modo per farlo. Quindi questa è una delle cose che mi piacerebbe vedere fatte meglio in futuro. Stiamo cercando di fare miglioramenti [qui]. Penso che Pi funzioni già molto bene in inglese. Mi infastidisce quando guardo il nostro menu - a volte lo cambio in altre lingue per testarlo - tre quarti di esso è stato tradotto in tedesco o francese, e ci sono cose - quattro o cinque cose - che ovviamente non lo sono state. Questo mi sembra - è fastidioso e vorrei che fosse fatto meglio. Ci sono alcuni siti web automatizzati che ti aiutano a fare traduzioni, e la gente mi ha fatto notare che basta mettere il tuo codice lì, e la gente arriva e lo traduce gratuitamente. Mi piacerebbe organizzare qualcosa del genere. È sulla lista delle cose da fare ....
Max... ma devi bilanciare le tue priorità.
Simon: Esattamente. Ma penso che in termini di desktop Linux, il supporto per l'internazionalizzazione, sarebbe bello se fosse migliore. Noi come azienda non possiamo uscire e far tradurre tutta questa roba. Ci affidiamo agli utenti che ci forniscono le traduzioni. E il meccanismo con cui gli utenti possono fornire traduzioni al momento è scomodo - è fare richieste di pull su GitHub. Un numero relativamente piccolo di persone è in grado di farlo, mentre un numero relativamente grande di persone è in grado di tradurre una delle nostre applicazioni in una lingua diversa. Quindi questo è qualcosa che mi piacerebbe fare meglio in futuro.
Nel complesso il desktop Linux che distribuiamo penso sia abbastanza buono, penso che siamo più o meno dove voglio essere. Non ci sono grandi cambiamenti che voglio fare in questa fase, penso che la maggior parte delle cose che ho guardato il primo giorno e [annotato come] cattive, [sono ora risolte].
Max: Hai una sensazione di realizzazione, ...
Simon: Una delle cose che mi piace fare è mettere una scheda con Wheezy com'era il primo giorno, e una come l'abbiamo ora - e - questo è un computer diverso. E, sì, mi sento molto orgoglioso di questo. In termini di carriera, il Desktop è la cosa su cui mi sento più orgoglioso di aver lavorato, perché il 95 % di esso è il mio lavoro. Posso effettivamente guardarlo e dire: Ho fatto il lavoro di progettazione, ho fatto il lavoro di implementazione, ho scritto il codice, ho costruito i pacchetti. Lavoro con un collega, che fa un sacco di creazione di immagini, e alcune delle cose Linux sottostanti, e lavoro con un graphic designer che ha fatto un po' di design delle icone. Ma sento che il Desktop è il mio bambino, questa è la cosa che ho creato. E ne sono davvero orgoglioso - sento di avere il [diritto] di esserlo - sento che l'esperienza di utilizzo di un Pi è ora paragonabile all'utilizzo di una macchina Windows o di un Mac, ed è lì che vogliamo arrivare.
Max: Questo è importante per rendere il Pi più amichevole e accessibile, come una piattaforma per tutti.
Simon: Esattamente. Eben ha sempre detto che vuole che il Pi sia un computer di uso generale. E il desktop è una parte importante di questo. Ora siamo al punto in cui il desktop non lo trattiene dall'essere un computer di uso generale. E penso che LXDE, quattro anni fa, avrebbe costituito una barriera all'ingresso per alcune persone. Il Desktop è ciò che sono più orgoglioso di aver raggiunto - ed è un buon posto dove stare.
Max: Come si ottiene effettivamente l'ispirazione per il lavoro che si sta facendo? Sentimenti, idee, ...
Simon: L'ispirazione viene principalmente da me che guardo qualcosa e dico: "Dio, è davvero fastidioso. Devo essere in grado di farlo meglio. "Non è tanto l'ispirazione positiva, è la frustrazione per i pezzi che non funzionano bene come potrebbero. Sembra un modo molto negativo di vedere la cosa. Ma: Mi siedo e penso, "Oh Dio, è davvero il modo migliore per farlo?" Poi mi siedo e penso, potrei fare questo, potrei fare quello.
Non tendo a guardare come gli altri fanno le cose. Tendo a guardare - qual è la più breve sequenza di mosse che posso fare per arrivare al punto in cui voglio essere? Qual è il minor numero di cose che voglio far fare all'utente per ottenere ciò che vuole fare. E questa è più o meno la cosa che si vuole fare.
Max: Tagliare, piuttosto che aggiungere ...
Simon: Sì, è togliere cose piuttosto che aggiungere passi. Molti anni fa ho fatto qualche lavoro sul design dell'interfaccia utente dei telefoni. In realtà era con Microsoft. Lavoravo per un'azienda di R&S a contratto, e stavamo lavorando al primo video telefono che stava per essere lanciato sul mercato. Sono andato a incontrare il team di design GUI di Microsoft a Seattle - era il 1999 circa, e Microsoft non era considerata all'avanguardia in termini di design UI. Se volete un esempio di cattivo design, usate uno di quelli di Microsoft, piuttosto che quelli di Apple che erano buoni. Naturalmente sono molto meglio oggi. E avevano una lista di linee guida per l'UI design. Mi ha lasciato perplesso - perché erano linee guida così buone su come progettare una UI - e Microsoft stava producendo delle UI così brutte. "Avete queste brillanti linee guida, cosa diavolo sta andando storto tra queste linee guida e il prodotto finale?
Ma una delle cose più importanti, che mi è rimasta impressa e che continuo a seguire al giorno d'oggi, è che - fatemi capire bene - "offrire opzioni all'utente non sostituisce il prendere la decisione giusta in anticipo".
È una cosa molto facile da fare per dire: "Beh, non so se dovremmo fare così o così, quindi mettiamo una casella e lasciamo scegliere all'utente". L'ho visto molte volte, infatti nella mia precedente carriera nel design UI, quando lavoravo per la R&S a contratto, c'era sempre questa tendenza, "oh beh, non sappiamo cosa l'utente vorrà fare qui, quindi diamogli la possibilità di scegliere. Rendiamolo personalizzabile qui, in modo che possano fare quello che vogliono". Il mio esempio è sempre il lettore di compact disc. Quando sono usciti i primi lettori CD, si poteva programmare quali tracce si volevano riprodurre. Per esempio prima la traccia 1, poi la traccia 5 e poi la traccia 3 e poi la traccia 4. E tutti lo facevano per i primi venti minuti in cui possedevano un lettore CD. E non l'hanno più toccato. Se compri un lettore CD [oggi] - negli ultimi tre o quattro lettori CD che ho posseduto, non puoi più programmarli, perché hanno capito che nessuno voleva farlo. Stavano dando agli utenti questa funzionalità che un piccolo numero di utenti ha usato, ma era lì per tutti. È lo stesso tipo di cosa - se lo faccio bene in anticipo, non devo rimandare la decisione agli utenti perché non posso prendere la decisione. Uno degli aspetti dell'UI design che è importante è avere il coraggio di andare: Penso che questo sia il modo di farlo. Penso che questo sia il modo migliore per tutti. E non avrai mai ragione ogni volta. E devi accettare che a volte riceverai un feedback così negativo dagli utenti che penserai: OK, era sbagliato, avrei dovuto farlo nell'altro modo.
Ed è successo un paio di volte sul Pi. Ho rimosso le impostazioni dell'orologio. "Hai tolto le impostazioni dell'orologio!!!". "OK, le rimetto a posto". Si tratta di cercare di mettersi nella mentalità, di OK, per cosa lo sta usando una persona media, cosa vuole effettivamente fare, cosa sta effettivamente cercando di ottenere, dove vuole arrivare. Come posso aiutarli ad arrivarci, senza mettere un sacco di decisioni sulla loro strada. Come vuoi fare? Volete fare questo o quello? A loro non interessa questa cosa intermedia, vogliono essere qui. Ed è come ci arrivano. Come posso farli arrivare il più velocemente possibile? Questa è un po' la priorità di cui si tratta - si tratta di prendere la decisione giusta per te, piuttosto che far prendere la decisione agli utenti stessi. Suona un po' dittatoriale, è come "so cos'è meglio per te", ma d'altra parte, questo è ciò che riguarda il design dell'usabilità - si tratta di avere una sensazione di ciò che è meglio per le persone.
Max: In modo che le cose funzionino intuitivamente senza che l'utente debba investire molto tempo per imparare come funziona la cosa.
Simon: Sì. Per parlare un po' della teoria dell'UI design, ci sono vari libri di testo sull'UI design, ma il migliore si chiama "The psychology of everyday things", che ora credo sia stato rinominato. Se qualcuno vuole imparare l'UI design, "The psychology of everyday things" è l'unico libro da leggere.
Max: Ha una teiera con un manico nel modo sbagliato sulla copertina?
Simon: Questo è quello, questo è il libro. Una delle cose che spiega è che nel tuo cervello fai una mappa di come funziona qualcosa. E finché la mappa mentale corrisponde alla cosa che hai davanti, e si comportano allo stesso modo, allora puoi usarla intuitivamente. E in alcuni casi è semplice come una vera e propria mappa. Se vado a sinistra da qui, voglio vedere lo schermo spostarsi a sinistra. Non voglio premere il tasto sinistro e avere lo schermo che improvvisamente scorre verso l'alto. Sono cose del genere. È far funzionare le cose nella tua mente come il computer, e far funzionare le cose nel computer come le cose nel mondo reale. E se riesci a farlo, è così che riesci a rendere le cose intuitive. È far funzionare le cose come gli utenti si aspettano che funzionino. E oggi gli utenti capiscono il paradigma dei computer. Capiscono: muovo un mouse per spostare il cursore, premo un pulsante. Non c'è bisogno di insegnarlo alla gente, mentre trent'anni fa nessuno avrebbe saputo niente di tutto questo. Quella parte è consolidata, quindi non giocherellare inutilmente con quella, perché non aiuta. Cercate solo di essere coerenti. Se hai un pulsante sulla finestra, allora fallo sembrare un pulsante. Questo è il punto in cui Apple ha sbagliato terribilmente con una delle loro ultime riprogettazioni di iOS, stanno cercando di rendere lo schermo più bello, e nel processo hanno tolto tutti i pulsanti. Così ora ci sono solo parole. Ora tutti hanno imparato che un pulsante assomiglia ad una parola. Ma quando l'hanno fatto per la prima volta, la gente pensava: "dove sono finiti tutti i pulsanti?". Si può apprezzare la semplicità del design, perché sono belli, ma dal punto di vista dell'usabilità, non è stata una grande idea.
Max: Non c'è più nessun accenno al fatto che si tratta di pulsanti.
Simon: Esattamente. Sono cose del genere - se qualcosa è un pulsante, fallo sembrare un pulsante. Non farlo sembrare qualcos'altro. Fai quello che la gente si aspetta. E naturalmente puoi fare il contrario. Fai cose che la gente non si aspetta. E se fai cose che la gente non si aspetta, le nota. Quindi se vuoi attirare l'attenzione di qualcuno su qualcosa, fai qualcosa che non si aspetta. L'esempio più ovvio è far apparire una finestra di dialogo - hai cambiato lo schermo, dovranno notarlo. Si tratta di lavorare con le aspettative dell'utente su ciò che sta per accadere e puoi usarlo per farlo sentire a suo agio e familiare, oppure puoi usarlo per attirare la sua attenzione su qualcosa [che vuoi che siano in grado] di sapere. La psicologia che c'è dietro penso sia abbastanza interessante. Penso che questo sia il punto in cui molti programmatori Linux non pensano in questi termini.
Max: Penso che si tratti soprattutto di fare qualcosa che funzioni.
Simon: Esattamente, sì. È quasi che funziona secondo la mappa mentale che hanno. Ma la mappa mentale che hanno non è nella mente degli utenti. Quindi il fatto che abbia senso per loro, perché è così che funziona il database dietro di esso - questo è un po' il problema. Gestire il database è un mio problema, devo farlo io. Gli utenti non dovrebbero preoccuparsene. Ho bisogno di presentare il database agli utenti in un modo che abbia senso per il loro modello di realtà, piuttosto che per il modello del computer delle cose al suo interno.
Max: So cosa intendi, giusto. A volte ci sono applicazioni in cui si fanno diversi passi, uno dopo l'altro, ma mettono tutti i passi in un unico dialogo. Ti confondi.
Simon: Quando si sviluppa un software, si inizia lanciando tutto sullo schermo - ho bisogno di fare questa cosa, ho bisogno di fare [quella] cosa, ho bisogno di fare [quella] cosa. Si lancia tutto sullo schermo. E poi quello che dovresti fare è tornare indietro e guardarlo di nuovo, e dire "OK, è questo il modo migliore per farlo? È il modo più facile per farlo? No, certo che no - non c'è bisogno di usarlo, posso nascondere questo pulsante perché nessuno ha mai bisogno di vederlo". E penso che con un sacco di sviluppo di Linux si arriva al punto in cui tutto funziona sullo schermo, ed è fatto. E non fanno il passo finale - di, come faccio a lucidare questo in modo che sia piacevole per gli utenti.
Max: Questo è ciò che la gente nota di Linux - è più grezzo.
Simon: Esattamente. Non riceve la lucidatura. E io sto facendo la lucidatura. Questo è fondamentalmente il mio lavoro - ci sono alcune cose che ho scritto da zero. Ma, come ho detto prima, senza gli autori di LXDE, non avrei avuto nulla con cui lavorare, quindi tutto il merito per quello che hanno fatto, e il loro lavoro è fantastico. Ma alcuni di essi non avevano quel 5 % di smalto. Questo è ciò che serve per far sì che questo passi dall'essere un buon pezzo di software ad una grande esperienza utente.
Max: Secondo il principio di Pareto, questi 5 % richiedono effettivamente l'80 % del tempo ...
Simon: Può richiedere molto tempo, ma sì...
Max: Qual è in realtà il feedback più sorprendente che avete ricevuto dagli utenti?
Simon: Feedback sorprendente ... Penso che la cosa che mi sorprende è quando le persone sono incredibilmente lusinghiere. Penso, perché ogni tanto qualcuno dirà qualcosa come, sai - ci sono un paio di commenti sul blog al momento su quanto sia fantastico il Desktop, come sia diventato un vero computer, questo dovrebbe essere lo standard per l'informatica, ... è quando la gente dice cose del genere, che mi sorprende. Perché penso che quello che sto facendo sia buono, ma alla fine della giornata sono un tizio seduto in ufficio con un computer, che quattro anni fa non ha mai usato Linux.
Max: Il che è un vantaggio forse.
Simon: Sì! Non ho accettato che sia tutto rotto. Ci deve essere un modo per migliorarlo. E penso che questo tipo di feedback sia ancora abbastanza sorprendente per me. Il feedback che non mi sorprende è quando cambio qualcosa e la gente dice: "No, non avresti dovuto farlo". Le persone sono molto resistenti al cambiamento. E a volte penso che sia giusto. A volte - di nuovo è questa esperienza di non conoscere il modo in cui Linux fa questo, ma dirò: "In realtà non è giusto quello che stiamo facendo, dovremmo fare così, sicuramente". E poi scopri che tutti si sono abituati al modo in cui Linux lo fa, e quindi cambiarlo, anche se potrebbe essere meglio così, non è la cosa giusta da fare.
Max: C'è un pregiudizio quando si ricevono feedback nei forum - sono più gli utenti impegnati, non i ragazzi normali.
Simon: Esattamente. Ogni volta che il feedback è molto molto positivo, tende a venire dai nuovi utenti, penso.
Sono stato chiamato in modo orribile, non nei nostri forum. Quando abbiamo effettivamente fatto il lancio del Pixel - quando l'abbiamo chiamato per la prima volta Pixel [il trascrittore: il Desktop Raspbian], è stato sui forum del Register (è un sito web di tecnologia). I commenti lì erano abbastanza schietti. E uno di loro mi ha attaccato, brutalmente, in termini di come - penso che mi abbia chiamato una mezza tacca.
Max: Mezza punta?
Simon: Mezzo spirito è un termine di abuso abbastanza standard, lui l'ha reso più computerizzato chiamandomi mezzo pezzo. Ha spiegato che "mettere un nome intero su quello che è un reskinning di LXDE stava gonfiando il mio ruolo a dismisura. C'era voluto così tanto tempo per fare così poco". Insomma. In una certa misura, posso vedere il suo punto - se si guarda da LXDE a Pixel, la funzionalità fondamentale era esattamente la stessa. Ma quello che avevo fatto, è che avevo applicato la lucidatura. E la lucidatura fa una grande differenza. Ma non per lui, perché - credo che abbia fatto il commento, "L'unico scopo del desktop è quello di avere qualcosa da mettere sulle finestre del terminale". Non sei davvero il mio mercato di riferimento, dice: "perché hai messo una grande barra delle applicazioni in alto? Sta occupando parte dello spazio in cui avrei potuto mettere le finestre dei terminali". Non sei davvero il mio mercato di riferimento qui. Questo non è per voi. Se quello che vuoi è un grande schermo di finestre di terminale, ci sono molti altri posti nel mondo Linux dove puoi ottenerlo, non venire qui. Non farete tutti felici con quello che state facendo. Ma è quando vedi il feedback di persone che effettivamente capiscono chiaramente ciò che stai cercando di fare, e chiaramente lo apprezzano. È quando vedi gratitudine e un livello di comprensione di ciò che stai facendo. In contrasto con le persone che chiaramente non capiscono quello che stai cercando di fare. Non capiscono quanto lavoro è stato fatto in alcuni casi. Perché non stai facendo quello che vogliono loro. Sono quei messaggi che ricevi quando la gente dice: "Hai reso questo molto più bello da usare rispetto a prima. E tutti i cambiamenti sono positivi". È quando ricevi questi messaggi che senti che quello che stai facendo vale la pena. E ancora - non sono perfetto, faccio errori. La roba esce con dei bug, la roba esce con decisioni di usabilità che possono non essere perfette. Ma stiamo tutti cercando di rendere questo prodotto il migliore possibile. Il desktop è il mio bambino, voglio che sia il migliore possibile, è quello che vivo per fare al momento, fondamentalmente. È il lavoro più gratificante che ho avuto in 25 anni di ingegneria.
Max: È davvero meraviglioso, essere in un posto dove ci si sente felici di fare quello che si fa.
Simon: Ho passato - prima di essere qui, ho passato nove anni in un lavoro in cui dovevo trascinarmi fuori dal letto ogni mattina per andarci, perché detestavo quello che stavo facendo. E qui mi alzo ogni mattina entusiasta di andare in ufficio a fare quello che farò. Ho quasi dimenticato che si può avere un lavoro così. Diciamo che pensavo che non succedesse. Vengo davvero ogni mattina e mi piace quello che faccio. E penso che questo aiuti molto, perché ci tengo al prodotto. Questo prodotto è quasi un'estensione di me. Questo è il sistema operativo che io - anche ad un livello puramente egoistico - è il sistema operativo che voglio usare. Quando ho iniziato alla Pi ho fatto tutto il mio lavoro sul Mac. Scrivevo codice sul Mac, lo scaricavo sul Pi. Ora faccio tutto il mio lavoro sul Pi. Uso il mio Mac per la posta elettronica e la navigazione web, e questo è tutto. Uso Geany sul Pi per tutto lo sviluppo del codice, mi siedo a scrivere al mio Pi ...
Max: Lei usa il modello 3 B+?
Simon: Oh sì, è il più veloce. Ma sì, e allo stesso modo con la versione x86 - è il sistema operativo che Eben usa sul suo Mac, e quella specie di acquisto è davvero bello.
Non è tanto una cosa di feedback ... è quando vedo foto o video di persone in Africa, e hanno una classe allestita con Pi e tutti hanno il mio desktop. Vedere che la cosa che ho progettato viene usata in tutti questi posti, è incredibile.
Ho fatto un sacco di design UI nei miei primi dieci anni di carriera in R&S a contratto, ma era tutto per prodotti abbastanza specializzati. Quindi non hai mai avuto modo di vederli utilizzati nel mondo reale. Ma con questo... Eben va alla CNN o da qualche parte, e hanno dei Pi sugli schermi a muro. Gli piace scattare foto dei posti in cui ha visto il desktop utilizzato. Le porta indietro e dice: "guarda questo, lo stanno usando qui".
È ancora un'emozione vederlo. Mi do un pizzicotto, sto sognando, che queste persone stanno usando la cosa che ho progettato. È una sensazione incredibile. Ne vale la pena, anche se non mi è piaciuto farlo - cosa che faccio.
Max: Parlando della versione x86, quali sono i piani per essa? Avete intenzione di fare una sorta di distribuzione Linux alternativa che tutti possano usare?
Simon: Continueremo a fare rilasci x86 il più possibile in sincronia con i rilasci di Raspbian. Mantenendo i due prodotti il più possibile simili dal punto di vista dell'utente. La differenza principale tra i due è che ci sono alcune applicazioni gratuite che abbiamo sul Pi e che non possiamo avere su x86. Non penso che sia una questione di avere dei piani in quanto tali. Di nuovo, c'è gente che dice che, per quanto li riguarda, è il miglior desktop / la migliore distribuzione Linux. Non ho intenzione di sfidare Ubuntu o Debian o qualsiasi altra cosa. Si tratta di cercare di rendere le cose più piacevoli, e se la gente ha intenzione di avere un'esperienza più bella anche sul proprio portatile come sul loro Pi, allora è assolutamente fantastico. Abbiamo intenzione di continuare a produrlo, ora è un processo abbastanza automatizzato per produrre build x86 insieme alle build ARM, quindi sì, continueremo a metterlo in circolazione. La sua intenzione era di permettere alle persone con computer meno potenti - perché è basato su Debian - la sua intenzione era di rendere le persone con vecchi computer meno potenti in grado di usarlo. Penso che sia una distribuzione Linux abbastanza decente al giorno d'oggi. Di nuovo, è Debian con la nostra pelle sopra - non fraintendetemi, non è tutto lavoro nostro, è per lo più Debian, con la lucidatura sopra.
Max: Avete dei numeri su quanto si è diffuso?
Simon: Probabilmente abbiamo i numeri di download di quante copie sono state scaricate. Penso che in termini di utenti Pi desktop sia probabilmente 95 % Raspbian. Per quanto riguarda le versioni x86 - le abbiamo rilasciate come esperimento. Era quasi uno scherzo, perché Eben ed io eravamo seduti a chiacchierare in ufficio. Siamo arrivati al punto in cui eravamo abbastanza soddisfatti di come stava andando il desktop. E lui disse: "Non sarebbe fantastico, se potessi avere questo sul mio portatile? Mi piacerebbe questo sul mio portatile". E ho iniziato a pensarci. Sono andato a casa, ed ero annoiato un sabato a casa. E ho pensato - mi chiedo se possiamo farlo. Ci deve essere una versione LXDE di Debian, e ho scaricato la versione LXDE di Debian. Poi ho trascorso circa due ore, cercando di far funzionare la persistenza su di essa. Ho creato un'immagine che si sarebbe avviata sul mio Mac a casa, con la persistenza basata sull'immagine LXDE. E l'ho fatta funzionare, e ho pensato, vediamo cosa posso fare. Penso che quella sera avevo il desktop del Raspberry Pi in esecuzione su quella chiavetta USB. L'ho portato qui, Eben era stato ad una conferenza durante il fine settimana ed è arrivato il lunedì, e gli ho detto: "dai un'occhiata a questo". Ho collegato la chiavetta USB al mio Mac e l'ho avviato sul desktop. E lui ha detto: "Wow, ce l'hai fatta. Hai intenzione di spedirlo, allora?". Ho detto: "Se pensi che dovremmo".
È venuto fuori letteralmente da un'osservazione casuale di Eben, e io che mi annoiavo a casa, e ho pensato: quanto può essere difficile, ci proverò. Si è scoperto che non era poi così difficile.
Max: In realtà è interessante che una cosa così importante - penserete che richiederà molto tempo, ma non è così, ma altre cose - come il qPDF ...
Simon: Sì, ci vogliono secoli. L'unica cosa che ha richiesto molto tempo per l'immagine x86 è stato effettivamente cercare di ottenerne una che si avviasse su più piattaforme possibili, perché abbiamo un sacco di problemi con alcuni modelli di Mac. Avevamo due piattaforme difficili, che erano: il mio Mac mini a casa e il MacBook di Eben. E volevamo che funzionasse su entrambi. Il mio Mac in ufficio, che era una generazione diversa di MacBook - tutto funzionava su di esso, ogni immagine si avviava. Ma ci sono voluti secoli per provare a smanettare con il BIOS Debian di basso livello e l'imaging, e abbiamo passato un paio di settimane a giocarci. Molto di questo l'ho fatto a casa nei fine settimana, provando diverse cose in termini di creazione dell'immagine Debian. Per fare in modo che si avviasse. Alla fine abbiamo trovato un modo per creare un'immagine che si avviasse sia sul mio Mac a casa che sul Macbook di Eben. Questa è quella che stiamo spedendo, perché funziona sui due casi di riferimento. Penso che abbiamo avuto problemi perché Debian ha diviso l'immagine live e l'immagine installabile - erano due cose diverse. E l'immagine installabile funzionava su molte più piattaforme rispetto all'immagine live. Ma all'epoca eravamo basati sull'immagine live. Così abbiamo dovuto unire le due cose, per avere qualcosa che fosse sia installabile che avviabile su più cose possibili. E questa è stata la parte difficile, in teoria non avremmo dovuto farlo - Debian avrebbe già dovuto farlo per noi. Ma in realtà ottenere il nostro desktop su di esso è stato un processo relativamente veloce. Il processo era attivo e funzionante in un giorno.
Max: Avete anche tutto quello che c'è dentro, come il mago?
Simon: Quello che abbiamo appena rilasciato ha tutto in esso - la procedura guidata di avvio, le applicazioni preferite, l'unica differenza sono come ho detto cose come Mathematica, che non possiamo spedire. Tutto il resto dovrebbe essere - ogni cambiamento della GUI che facciamo alla versione ARM ...
Max: Anche questo è automatico. Una cosa che volevo chiederti riguarda gli aggiornamenti dei pacchetti, perché è qualcosa che alcuni utenti non sanno fare. C'è qualche piano per fare aggiornamenti automatici dei pacchetti? Sicurezza in particolare.
Simon: C'è un programma di aggiornamento automatico nel wizard. La prima volta che si esegue la procedura guidata di avvio, [Raspbian viene aggiornato] così si sa di avere l'ultimo e il migliore a quel punto. Rendere gli aggiornamenti automatici è una cosa difficile, perché per ogni persona che non aggiorna il proprio sistema, perché non sa di doverlo fare - e che probabilmente vuoi aiutare - ne hai un'altra che non aggiorna il proprio sistema perché sa che se aggiorna il suo sistema questo pacchetto qui si romperà. E quell'applicazione smetterà di funzionare. Ed è una di queste aree in cui sono abbastanza cauto nel fare un cambiamento, perché - menzionando la sicurezza: è come quando abbiamo fatto questi cambiamenti alla sicurezza. La cosa di cui vivo nella paura è rompere le cose. Se qualcuno scopre che il suo Pi ha funzionato ieri, e non funziona oggi, ed è colpa mia che è cambiato perché hanno tirato giù un aggiornamento - questo è il mio scenario da incubo. Un paio di volte, dove abbiamo messo brutti pacchetti sul repo, che non avevo adeguatamente testato - e succede invariabilmente quando vado in vacanza. Vado in vacanza. E scopro, il secondo giorno della mia vacanza, che ci sono segnalazioni di bug in arrivo - per un pacchetto che abbiamo spedito.
Max: Ti siedi davvero a sistemare questi bug? Non puoi vivere con la coscienza sporca?
Simon: Tendo comunque a stare a casa. Ho passato la prima settimana di varie vacanze a risolvere bug da casa, e a cercare di sistemare il sistema, perché - sì, mi sento in colpa per questo. Non mi piace rompere le cose per le persone. La mia preoccupazione riguardo agli aggiornamenti automatici è che, senza alcuna colpa da parte nostra, in alcuni casi, le cose si romperanno. Perché - l'intero problema delle dipendenze di Debian, è molto facile per un pacchetto passare ad una nuova versione, e noi non abbiamo il backport pertinente per eseguirlo, e così quel pacchetto che funzionava ieri ora non funziona più oggi.
Non vorrei farlo automaticamente. Finché non posso essere sicuro che non romperà mai niente a nessuno, non vorrei farlo automaticamente.
Max: E per le cose critiche per la sicurezza?
Simon: Anche per le cose critiche per la sicurezza. È una decisione difficile. Microsoft ha fatto il suo aggiornamento di Creator su Windows 10, quando è stato - l'anno scorso? Il mio Ethernet ha smesso di funzionare sul mio PC Windows. Questo è imperdonabile. La mia rete funzionava prima che facessi questo aggiornamento, e ora non più. Essendo un utente ragionevolmente esperto di tecnologia, mi ci sono volute due ore per far funzionare di nuovo il mio computer.
Max: Soprattutto quando non si ottiene il networking.
Simon: Esattamente, è abbastanza difficile fare una diagnosi senza i consigli di Internet. Quindi sono cauto al riguardo. È una delle cose che abbiamo esaminato - una qualche forma di strumento GUI per fare gli aggiornamenti. In effetti si possono fare aggiornamenti di sistema attraverso lo strumento aggiungi/rimuovi programmi esistente. Guardando il design di quello strumento, in realtà viene eseguito come un'applicazione separata. Non c'è motivo per cui non si possa tirarlo fuori come applicazione separata. E forse controllare gli aggiornamenti all'avvio e cose del genere. È tutto fattibile, e stiamo arrivando ad un punto in cui questo è il genere di cose che inizieremo a guardare.
Max: In realtà è qualcosa che è davvero fantastico di Linux rispetto a Windows. Il computer non ti costringe a fare questi aggiornamenti. Questa è una cosa che odio davvero tanto di Windows. E si spegne - immaginate di fare una presentazione, e si spegne. È qui che devi tracciare la linea di demarcazione. Come abbiamo discusso prima, devi prendere decisioni per gli utenti, ma non puoi forzare l'utente a smettere di lavorare al computer quando non vuole.
Simon: Fa sempre arrabbiare gli utenti se si rompe qualcosa per loro. Anche se lo fai con le migliori intenzioni. Ci sono anche alcune applicazioni iOS che scrivo - c'è un'applicazione per risolvere le parole crociate. E ogni tanto faccio uscire degli aggiornamenti, e mi ricordo che ne ho fatto uscire uno che si è rotto su una certa versione di iOS su cui non l'avevo testato. E si ottiene una raffica di utenti che sono furiosi perché è rotto, e si ottiene una raffica di altri utenti che sono probabilmente più esperti di tecnologia, che vanno "solo per farti sapere che questo è rotto". Ho passato una settimana a Natale a sistemare la mia applicazione iOS un paio di anni fa. Era Apple che aveva rotto qualcosa, non io, ma ho dovuto trovare un workaround per questo. Ti senti quasi più in colpa per gli utenti che sono gentili a riguardo, che vanno "sì, capisco che questo è difficile". - "no, ti farò avere un fix entro domani!". - è sempre difficile. Gli aggiornamenti sono una cosa complicata, ed è molto facile rompere le cose.
Una delle cose che Apple fa, che penso sia imperdonabile è - su iOS, scaricano un Gbyte e mezzo di aggiornamento delle immagini, quando passo da iOS 10 a iOS 11. Lo scaricano automaticamente non appena sei connesso al WiFi, in background, senza chiedertelo. Se vuoi usare un Gbyte e mezzo della mia banda, chiedimelo prima. Questo è imperdonabile. In realtà ho registrato un bug, e ho detto: questo sta scaricando dati di una dimensione enorme. Hanno detto: no - è un aggiornamento di sicurezza, devi averlo, quindi dobbiamo fare di tutto per farti entrare nella piattaforma. Ho detto: non è vero, la gente deve pagare per i propri dati. Ci sono persone che hanno un limite mensile di dati. Hanno cinque iPhone in casa, tutti in download. Sono cose del genere - bisogna trovare un equilibrio ragionevole. Al momento non facciamo cose in termini di forzare gli aggiornamenti, o anche di consigliare gli aggiornamenti. Sarebbe probabilmente un bene se lo facessimo, ma non ho ancora preso una nuova decisione su ciò che faremo in merito.
Max: Avete pensato di avere una specie di area di notifica?
Simon: Abbiamo roba di notifica. La roba di notifica di LXDE non è un granché in realtà, mette le finestre nell'angolo dello schermo. Ma ogni volta che abbiamo un'applicazione che le usa, tendo a riscrivere l'applicazione, perché non sono belle. Ma è certamente possibile eseguire qualcosa all'avvio, per vedere se ci sono aggiornamenti, e mettere una finestra di dialogo sullo schermo. Ci sono cose che potremmo fare, ma è probabilmente in un'area che inizieremo a guardare, solo perché siamo arrivati in fondo alle cose più ovvie da fare.
Max: Quali sono le cose che vi facilitano lo sviluppo e quali lo rendono più difficile? Il tipo di strumenti che usi.
Simon: Geany è fantastico. Come ho detto, oggi faccio la maggior parte del mio sviluppo sul Pi.
Max: Fa anche il code hinting?
Simon: Sì. Geany fa praticamente tutto. Cose come il modo in cui tira fuori i nomi delle funzioni per te, e ti permette di trovare facilmente cose come queste è davvero buono. Ora mi manca questo quando uso altri editor, in realtà. [Altri strumenti che uso:] Glade - che è lo strumento per la progettazione di finestre GTK. Lo uso molto, anche se ho dovuto costruire la vecchia versione dai sorgenti, perché ora supportano solo la nuova versione che supporta solo GTK 3, "no, voglio la vecchia versione, per favore, perché posso sviluppare per GTK 2 con la vecchia versione!
Ci sono un paio di strumenti che sono utili per il mio lavoro. C'è uno strumento chiamato "A Widget Factory". AWF. Questo è fondamentalmente solo uno schermo con tutti i widget GTK su di esso. E ne ho due versioni, una GTK 3 e una GTK 2. Così cerco di mantenere il mio tema in sincronia tra le due, uso quelle. È davvero un buon modo di vedere - non sembrano uguali.
Max: Hai effettivamente due Pi uno accanto all'altro, uno che esegue GTK ...
Simon: No, perché posso eseguire l'applicazione in due o tre modalità, quindi ho solo due finestre sullo schermo. Il mio obiettivo con il tema è di rendere le finestre uguali. Così puoi farlo sulla stessa piattaforma. Questo è abbastanza utile. Git e GitHub sono meravigliosi. Sarei completamente bloccato senza GitHub. Penso che GitHub sia fantastico.
Max: Documentazione interna, la fate in linea con la fonte?
Simon: Per lo più sì. Commento solo il codice. Non faccio una grande quantità di documentazione esterna. Abbiamo persone che lavorano sulla documentazione indipendentemente da me. La mia intenzione è quella di scrivere cose che siano abbastanza ovvie da usare, in modo che possano risolverle senza che io dica loro come fare. Cerco di usare nomi di variabili utili, nomi di funzioni utili, commenti dove non è ovvio, cosa sta facendo il codice, principalmente come note per me tanto quanto qualsiasi altra cosa.
Altre cose che sono utili - una delle cose che mi frustra è che Linux non ha uno strumento diff veramente buono, in termini di un bello strumento diff grafico. Quello che uso è meld, che è il migliore che ho trovato, ma non è buono come cose come "Beyond Compare" sul PC, che è davvero buono. Mi sono trovato a spostare il codice Pi sul Mac, in modo da poter utilizzare lo strumento diff in Xcode. Ci sono alcune funzioni di Xcode che uso molto. Penso che sia la maggior parte degli strumenti che uso per lo sviluppo, roba che uso quotidianamente. Questo è probabilmente tutto, credo. E in termini di cose che rendono la vita facile - il codice ben strutturato è sempre buono. Cerco sempre di scrivere codice dal punto di vista che potrei dover tornare indietro e fare qualcos'altro con esso. Farlo bene la prima volta aiuta sempre.
Max: Conosci questa teoria dei due sistemi, quando costruisci il primo sistema è meglio che lo butti via?
Simon: Sì. L'ho fatto in passato. Soprattutto quando hai meno esperienza. È una delle cose che trovo ora, quando torno indietro e guardo alcune domande che ho scritto il primo anno, per il Pi, torno indietro e dico "oh, perché l'ho fatto? Oh, non andava bene". Se le trovo, le correggo al giorno d'oggi. Probabilmente potrei scoprire che, tra quattro anni, guardando indietro alle cose che sto scrivendo ora, [mi sentirò allo stesso modo]. Tutto lo sviluppo del software è un processo di apprendimento. Si migliora man mano che si va avanti, si migliora più si fa. Più capisci la tua arte.
GTK è una di quelle cose di cui più impari le piccole manie, più la usi e meglio puoi farla comportare. GTK stesso è uno strumento molto utile. Come designer di UI è molto utile avere dei vincoli. GTK è grande da quel punto di vista. Qualsiasi toolkit UI è fantastico - non ho uno schermo vuoto e devo decidere come questa finestra dovrà apparire. So come sarà questa finestra, perché sarà come tutte le altre finestre. So come saranno i pulsanti, perché saranno come tutti gli altri pulsanti.
Max: Quindi vi concentrate sull'applicazione stessa?
Simon: Sì. Piuttosto che la vetrina. È un bene che sia separato. Perché tutta quella roba la posso fare nel tema. Se voglio che tutte le mie applicazioni siano più belle, posso cambiare il tema. Se voglio che l'applicazione funzioni meglio, non devo preoccuparmi di renderla più bella.
Max: Come utente, preferisco che le applicazioni siano prevedibili, che abbiano lo stesso aspetto. Conoscete WinAMP? Non sembra un'applicazione Windows.
Simon: Oh sì, non sembra un'applicazione Windows. Quei piccoli... Sì. E abbiamo alcuni sviluppatori che hanno scritto applicazioni per noi, che vogliono fare la loro cosa che sembra diversa da tutto il resto. E [io vado ogni volta che lo fanno]: "non fatelo". Capisco il desiderio di farlo. Capisco il desiderio di far apparire la cosa come "questo è mio". È il branding, è lo stesso modo in cui stiamo marchiando il desktop. Ma spesso non è utile agli utenti. Questo è il mio argomento, perché vuoi che l'ambiente sia coerente. E qualcuno che vuole fare le proprie cose non è utile in termini di creazione di coerenza.
Max: Penso che sia proprio questa l'idea di fondo, vero, che tu voglia metterci il tuo nome.
Simon: Sì, esattamente. Un paio di altri che producono roba per Pi lo fanno. Va bene, cerco di dissuaderli dal farlo, ma alla fine della giornata, se sviluppano per noi, non posso dire "no, dovete fare questo!"
Max: "Il decimo comandamento".
Simon: Esattamente.
Max: Cosa ti ispira a sviluppare?
Simon: Cosa mi ispira? Migliorare. Questo è il meglio che può essere? E se non lo è, come posso migliorarlo? Si tratta di rendere l'esperienza dell'utente che mi piace come utente. Voglio sedermi lì e trovare questa esperienza piacevole per me. Se è un'esperienza piacevole per me, spero che sia un'esperienza piacevole per altre persone. Il design è questo. Se parli con qualsiasi designer industriale, il design è rendere le cose migliori per le persone.
Max: Si tratta di rimuovere l'attrito. Ricordo questo esempio con il frigorifero nel libro "The design of everyday things" dove l'utente penserebbe, ci sono due manopole o qualcosa del genere, una è per il vano congelatore e una è per il normale. E in realtà era una specie di strano mix ... O come questi rubinetti in Gran Bretagna - dice "attenzione, acqua estremamente calda". Ma cosa si dovrebbe fare?
Simon: Interruttori della luce che non funzionano allo stesso modo. Cose del genere. Credo di aver visto un documentario con Seymourpowell, i designer industriali di Londra. Dicevano: un designer vuole migliorare le cose.
Max: Cosa ti ha ispirato a dedicarti all'UI design?
Simon: È stato molti anni fa. Ho studiato ingegneria all'università. E mi sono specializzato in software. Ma ho sempre apprezzato il buon design. [Avevo una macchina fotografica Canon, ed era così soddisfacente da usare, perché tutto era stato fatto bene. E non ho fumato. Non ho mai fumato. Ma avevo un accendino Zippo, perché era una cosa così bella. Ho passato il mio tempo a pensare - non ho alcun talento artistico. Non so disegnare, non so dipingere, non so fare schizzi. Non so come si facciano cose così belle. Ma ho davvero desiderato di poterlo fare. Come posso combinare il mio desiderio di creare cose belle con il fare software? E il luogo logico in cui si incontravano era il design dell'interfaccia utente. Ho fatto un colloquio con Cambridge Consultants, il mio primo datore di lavoro. Mi hanno mostrato - perché stavano appena iniziando il design dell'interfaccia utente allora, e sviluppavano tecnologie per la simulazione dell'interfaccia utente. Così sono stati in grado di mostrarmi che avevano progettato un impianto hi-fi, e avevano uno schermo che assomigliava a questo impianto. E si poteva cliccare sui pulsanti sullo schermo e tutto rispondeva. E si poteva sviluppare l'intera UI in questo mondo virtuale. Ho visto questa dimostrazione e ho detto: "Voglio venire a lavorare per voi e fare questo". Penso che questo sia stato il motivo per cui ho ottenuto il lavoro, perché ero così completamente innamorato di ciò che hanno fatto. Questo è quello che voglio fare. Vedevo un modo in cui potevo davvero - se potessi farlo, sarei felice. Perché questo significa che posso fare cose belle, ma non devo essere in grado di disegnare e colorare e progettare. Posso fare cose belle così. Ed è da lì, credo, che è nato tutto per me.
Max: Quindi è probabilmente come gli ingegneri hardware che vengono a Raspberry Pi...
Simon: Sono sempre stato molto frustrato, quando guardavo i designer industriali, e desideravo davvero poter fare quello che facevano loro. Ma come ho detto, bisogna avere dei talenti, che io non ho per questo.
Max: Design del prodotto come le valigie, ecc...?
Simon: Esattamente. Quando lavoravo alla Cambridge Consultants, alla fine sono passato da un gruppo di software a un gruppo di design industriale. Perché a quel punto volevo essere considerato un designer piuttosto che un ingegnere. Ricordo che fu una mossa molto impopolare con il mio capo nell'ingegneria del software. Mi disse: "Stai facendo un errore enorme. Non riuscirai mai a farla franca". E io dissi: "questo è quello che sento di dover fare". Ero un ingegnere del software che lavorava a stretto contatto con i designer industriali, e lavoravo al design dell'interfaccia con loro. Ho trovato enormemente stimolante essere in un ufficio con persone che stavano facendo tutte queste cose che avrei voluto fare io, che stavano facendo il design del case, il design dell'aspetto, la grafica e questo genere di cose. Ed era la cosa migliore dopo essere stato in grado di farlo da solo, era lavorare con loro e contribuire al prodotto che stavano creando. Ed è da lì che è venuta la mia ispirazione per il design dell'UI. Era il desiderio di fare qualcosa che non potevo fare e trovare la cosa migliore successiva, che era il design GUI nel software.
Max: Quali sono alcune delle caratteristiche o dei cambiamenti che voi personalmente vorreste vedere in Raspbian, cose che non avete ancora fatto, di cui non abbiamo discusso. Forse cose che sono davvero fuori dal mondo, che sono davvero molto difficili da fare?
Simon: Ad essere onesti, ho iniziato il primo giorno, ho fatto una lista di tutte le cose che volevo fare. E penso di essere arrivato in fondo alla lista delle cose che volevo fare.
Max: Meglio fare una nuova lista.
Simon: Penso di dover fare una nuova lista. Non sono ancora sicuro di cosa ci sarà su quella lista. È una domanda difficile a cui rispondere. Se me lo aveste chiesto un anno fa, o due o tre anni fa, avrei avuto un'idea molto più chiara di quale fosse la risposta. Ora sono arrivato in fondo alla mia lista di cose originali. C'è un compito di manutenzione costante con tutta questa roba. Ogni due anni dobbiamo supportare una nuova versione di Debian.
Max: Spero che la squadra possa crescere.
Simon: In alcuni modi non lo voglio - perché mi piace.
Max: Ti piace davvero giocherellare con GTK 3 per far sì che si comporti bene?
Simon: Mi ci siedo e impreco e bestemmio, ma non lo farei fare a nessun altro, perché ...
Max... perché è il tuo bambino.
Simon... perché è il mio bambino e voglio che sia giusto. È associato a me. Ci sono persone che sanno che Simon Long fa il design GUI per Raspberry Pi. Non è una questione di non fidarsi di qualcun altro per farlo. È una questione di - ho passato così tanto tempo ad impararne la complessità, che è quasi che io sia la persona migliore per farlo comunque.
Sono stato manager per nove anni nel mio precedente lavoro, e lo odiavo.
Max: Ti è piaciuto fare i compiti invece di delegarli?
Simon: Mi è piaciuto farlo. Il mio incubo è che Eben arrivi e dica: "Ah Simon, ti abbiamo preso del personale per fare delle cose. Tu starai seduto al piano di sopra a prendere decisioni". E io direi: "Nooo, non portarmelo via". Perché mi piace avere le mani sul codice. E non mi piacerebbe affatto esserne privato. In un certo senso sono felice di continuare a farlo, perché lo trovo gratificante. Trovo gratificante [poter dire]: "Guarda, l'ho fatto io". Come manager non ho mai sentito di poter dire: "L'ho fatto io". - La mia gente lo faceva, io non lo facevo. Mentre ora mi siedo e dico: "L'ho fatto io".
Max: Una domanda più tecnica: cosa guadagneremo con il driver OpenGL? Vantaggi/svantaggi?
Simon: Fondamentalmente darà un'animazione più veloce e più liscia in qualsiasi cosa che usi OpenGL. Applicazioni OpenGL, ovviamente. L'intenzione, credo, è che tutto sarà effettivamente reso da OpenGL, il desktop, eccetera passerà attraverso di esso, il che significa che si otterranno i benefici dell'accelerazione hardware su tutto questo. Quindi, in teoria, sarà un'esperienza più veloce e fluida per tutti. Non credo che ci siano vantaggi oltre a questo.
Max: Se ho capito bene, è effettivamente necessario fare delle modifiche al desktop? O ne beneficerà automaticamente?
Simon: Sì. Ma di quanto - non è un'area in cui sono assolutamente un esperto tecnico. OpenGL è una di quelle arti nere. La mia comprensione è che sta fondamentalmente cercando di ottenere una migliore accelerazione hardware sotto il sistema, per tutto ciò che va sullo schermo.
Max: Quindi, per esempio, il Pi 1 avrà prestazioni migliori, idealmente?
Simon: Potenzialmente sì, anche se ancora una volta, uno dei problemi che penso con il driver OpenGL è quanta memoria usa. Quindi potremmo avere problemi sul Pi 1. Penso che ci siamo ampiamente occupati di quelli, ma - i miglioramenti ovvi saranno in cose come i giochi OpenGL. Ovviamente andranno tutti direttamente all'hardware. Si dovrebbe vedere un miglioramento generale delle prestazioni video.
Max: Wayland, Weston. Completamente abbandonato?
Simon: È in gran parte sullo scaffale, sì. Non penso che sia completamente abbandonato. Potrebbe tornare in auge ad un certo punto. Ma per ora, non abbiamo fatto alcun lavoro di sviluppo attivo su di esso per un paio d'anni.
Max: Qual è il tuo modo preferito di passare il tempo su un Pi?
Simon: (ride) Sono noioso, mi piace programmare per migliorare le cose, devo dire. Spesso torno a casa la sera e se c'è un problema tecnico di cui non ho capito la fine, penso che sarà interessante. Molto spesso scaricherò del codice da GitHub e lo inserirò nel mio Pi a casa.
Max: Solo perché non puoi resistere?
Simon: Sì, voglio migliorarlo, non posso lasciarlo solo. Se sto usando un computer per puro svago - non uso un Pi. Uso un Pi come piattaforma di sviluppo, ma mi piace lo sviluppo [così tanto]. Non uso il Pi per cose come la navigazione web, perché anche con Chromium, l'esperienza è molto meglio su una macchina Windows o Mac, perché la navigazione web richiede così tanti cavalli. Ma la cosa per cui uso il mio Pi in termini di divertimento è la stessa cosa che faccio al lavoro.
Max: È più simile a una vacanza, quando sei al lavoro.
Simon: Il mio partner a casa è pienamente consapevole che se sono seduto al piano di sopra nel mio studio, probabilmente sto scrivendo roba per il Pi. Questo è ciò che mi piace fare.
Max: Ho incontrato Martin all'evento sui campi Raspberry Pi, e mi ha parlato del nuovo aiuto. Stai pianificando di rilasciare un aiuto per il nuovo numero, che sarà spedito con Raspbian.
Simon: Martin ha fatto un gran lavoro in termini di riordino delle nostre risorse web. Le sue pagine web sono molto buone. E seriamente, dovresti dare un'occhiata ai link nel menu, perché ha fatto un sacco di lavoro su di essi, e penso che siano grandiosi. E sì - l'intenzione è che lo porteremo offline in qualche modo, sia che si tratti di pagine web statiche che sono sul Pi, o che lo facciamo come un'applicazione Electron, anche se le applicazioni Electron non sono terribilmente efficienti in termini di spazio, perché si finisce per avere l'intero browser Chromium costruito in ciascuna di esse. Ne abbiamo già uno sul sistema per Scratch 2.
Le sue risorse di aiuto sono grandiose, e sì, averle disponibili offline è una cosa molto grande da fare, quindi lo faremo ad un certo punto in futuro.
Max: Nessun piano concreto ancora.
Simon: Non ancora.
Max: Questa sarebbe ovviamente una cosa in cui si potrebbero tirare gli aggiornamenti. L'aiuto diventa migliore ...
Simon: Ancora una volta, questo è uno dei vantaggi di avere un aiuto che non è sulla piattaforma, in quanto si aggiorna automaticamente - quindi hai una decisione da prendere lì.
Una delle cose che ho fatto con le applicazioni raccomandate - che in realtà si aggiorna ogni volta che viene eseguita. Così ho fatto un'applicazione che si aggiorna automaticamente all'avvio. Perché volevo assicurarmi che le persone avessero sempre l'ultima e più grande lista di applicazioni raccomandate. Così ho dimostrato il concetto che è possibile fare un'applicazione che la prima cosa che fa è aggiornarsi. Con l'aiuto potremmo fare qualcosa di simile.
Max: Forse se si dà agli utenti un pulsante "annulla". Se qualcosa si rompe per loro, possono tornare indietro. Il problema ovviamente è capire quale cosa ha rotto il sistema.
Simon: Il che non è così facile. Dovreste essere in grado di farlo attraverso apt. E sfortunatamente con apt non è sempre facile annullarlo.
Max: Una cosa che faccio è aggiornare i pacchetti, perché ho fiducia che la Raspberry Pi Foundation faccia la cosa giusta. In realtà non mi preoccupo che alcune cose possano rompersi.
Simon: Cerchiamo di fare la cosa giusta, ma come ho detto non siamo infallibili. Così ogni tanto spingiamo fuori cose che non avrebbero dovuto essere la cosa giusta. Ma cerchiamo di tenerlo al minimo.
Max: Con i problemi di corruzione della SD, stavo pensando che c'è un sacco di log in Raspbian in corso ...
Simon: In termini di corruzione della SD, una delle cose che abbiamo considerato di fare, e che potremmo fare in futuro, è quello che facciamo con l'immagine x86. Che è effettivamente di spedire un'immagine fissa con una partizione persistente sopra di essa. In questo caso si potrebbe sempre tornare ad uno stato buono. Questa è una delle cose che abbiamo considerato di fare. Avete una partizione di base, e poi ci applicate sopra la persistenza.
Max: Fondamentalmente una sovrapposizione.
Simon: Esattamente. È qualcosa che abbiamo pensato di fare. Non ho il tempo [di farlo], ma probabilmente è la strada da seguire in futuro.
Max: Una delle prime cose che ho visto quando sono arrivato nel Regno Unito, è stata una navetta - quando si esce dall'aeroporto di Stansted hanno una navetta che va al terminal. E c'era un Raspbian [congelato durante la partenza].
Simon: Succede. Veniamo usati abbastanza spesso nei display. E la capacità di recuperare da una cosa del genere è ovviamente una buona cosa. Ma sì, le schede SD non sono una tecnologia perfetta. Le cose per renderla più robusta sono buone. Sospetto che ci sposteremo verso un file system in sovrapposizione sopra una partizione di base. Il che significa almeno che puoi tornare a qualcosa che sai che funziona, se non necessariamente con tutto il tuo lavoro [esistente] su di esso.
Max: Avete dei piani per gli utenti industriali che non toccano il sistema, per un'immagine di sola lettura?
Simon: La gente ha esaminato le immagini di sola lettura. Non l'abbiamo esaminato internamente - se ne discute occasionalmente, ma non abbiamo fatto alcun lavoro al riguardo. È certamente fattibile farlo.
Max: L'ultima domanda che ho è sui binari ARMv6 e ARMv7. Fondamentalmente, quello che si fa è supportare tutti i Raspberry Pi.
Simon: Non vogliamo rendere orfane le persone che hanno comprato i Pi 1 - perché per definizione potrebbero avere un budget limitato. Sono solo 35 $ per un nuovo Pi, ma potrebbero non avere 35 $. Quindi cerchiamo di supportare tutte le vecchie piattaforme dove possibile. L'unico posto dove non lo facciamo al momento è il lettore Flash. Il lettore Flash è disponibile solo come binario ARMv7, questo è tutto ciò che Adobe fornisce. Quindi c'è molto poco che possiamo fare al riguardo. Non vogliamo consapevolmente orfanizzare le vecchie piattaforme con nuove versioni di software.
Max: Il motivo per cui lo chiedo è la performance. Ovviamente i binari ARMv6 non usano tutte le caratteristiche che userebbero i binari ARMv7.
Simon: In alcuni casi abbiamo effettivamente librerie ibride, alcune delle nostre librerie di accesso alla memoria, per esempio. Guardano per vedere se stanno girando su un ARM 6 o un ARM 7 ed eseguono codice diverso di conseguenza. Questo è qualcosa che potremmo considerare di fare.
Max: Il kernel è anche ottimizzato ... librerie di base [dove avverrebbe il maggiore impatto]
Simon: Sì. Queste sono cose come le copie di memoria, il confronto della memoria. Roba che è l'overhead generale del sistema, quelle sono ottimizzate per varie piattaforme. È una cosa complicata da far funzionare. Ma funziona. Probabilmente non lo faremmo per tutto - ma quando troviamo posti dove possiamo ottenere un vantaggio. Probabilmente non ottimizzeremmo una singola applicazione. Ma se possiamo ottimizzare per più applicazioni - e abbiamo un ragazzo che è molto bravo in questo - a respirare su bit di codice di basso livello per questo scopo. Abbiamo un programma continuo di ricerca di cose con cui possiamo ottenere un vantaggio in termini di prestazioni ottimizzando.
Max: Quindi, essenzialmente, ciò che accade, rispetto ad altre piattaforme, dove fondamentalmente si tratta più di hardware economico, con il Raspberry Pi si ottiene un computer che diventa sempre migliore, perché il software cresce sempre meglio.
Simon: Speriamo che sia così, sì.
Max: Ci sono cose che vorresti menzionare, cose belle, idee?
Simon: Penso che abbiamo coperto la maggior parte delle cose che fluttuano nella mia testa in questo momento, quindi penso che sia fantastico.
Max: Grazie per averci dedicato del tempo.
Simon: Nessun problema, è stato un piacere rivederla.