Entrevista com Simon Long do Raspberry Pi sobre o Raspberry Pi Desktop, design UI, e muito mais!
Informação importante: esta entrevista foi feita no início de Julho de 2018, pelo que algumas aplicações a que Simon se refere podem já ter sido lançadas, etc.
Max: Esta é a entrevista com Simon Long da Fundação Raspberry Pi, que é o principal responsável pelo Raspbian, o desktop OS.
Simon: É isso mesmo.
Max: Muitos aplicativos como o VeraCrypt lançam binários para a plataforma Raspberry Pi especificamente, mas neste caso nem mesmo binários ARMv6 - apenas ARMv7. Eu estava me perguntando se há uma razão técnica específica para isso, visando especificamente o Pi, porque não apenas fazer binários genéricos ARMv7.
Simon: Então, não sei nada sobre o caso específico que mencionou lá. Em termos de direcionar o Pi especificamente, eu estou ciente que as versões padrão do Debian ARM hard float não fazem o melhor uso do Pi. Elas não são particularmente otimizadas para nossa plataforma, é meu entendimento. Eu não tentei rodar nada que não tenhamos construído especificamente usando sistemas dedicados de compilação Pi construídos no Pi ou construídos em ambientes de compilação cruzada projetados para o Pi. Mas sou levado a acreditar que as coisas precisam ser construídas especificamente para ele, ao invés de apenas usar coisas padrão do Debian hard float. Eu não estou familiarizado com os detalhes técnicos do porquê disso, mas suspeito que isso tenha a ver com as otimizações para o hardware. Certamente no caso de coisas óbvias onde as pessoas desejam usar partes do VideoCore, uma construção padrão do Debian ARM hard float não fará nenhum uso disso. Então você não terá o melhor desempenho que você poderia obter do dispositivo.
Max: Está a falar de coisas como, por exemplo, estas optimizações NEON SIMD?
Simon: Não - a coisa NEON deve funcionar, porque isso está no lado ARM do dispositivo. É mais especificamente o lado do Video Core do dispositivo, do qual a aceleração do vídeo é provavelmente a parte mais importante. Há também coisas como as unidades de processamento de pixel no VideoCore IV que permitem que você faça operações paralelas. Você não estará obtendo nenhuma dessas otimizações se não estiver visando especificamente nossa plataforma.
Max: Então essencialmente uma plataforma ARM não é igual a uma plataforma diferente?
Simon: O núcleo ARM em si é o mesmo, mas os periféricos serão diferentes. Um dos periféricos no nosso caso é o VideoCore que fornece aceleração vídeo e multimídia. Portanto, se você escrever para uma plataforma ARM genérica, você não fará o melhor uso disso. Para lhe dar um bom exemplo: Crómio. Sempre que uma nova versão do Chromium acontece, nós temos um cara que trabalha integrando nossa aceleração de hardware de vídeo nele. Se você usar o Chromium para tocar no YouTube ou qualquer outra coisa na plataforma, você terá o benefício da aceleração por isso. Se você pegasse apenas a versão padrão do Chromium ARM, você não o faria. É principalmente para coisas como a aceleração de vídeo.
Max: Você tem um procedimento automatizado para fazer isso?
Simon: Não - é uma coisa difícil de automatizar. O código muda significativamente, certamente no caso do Crómio. Em muitos dos casos é sobre pegar os mesmos patches que você colocou na última versão e aplicá-los à nova versão. Mas como você sabe, sempre que você tenta fundir os patches entre as versões, eles nem sempre entram de forma limpa. É uma quantidade variável de trabalho a colocar, dependendo de quanto churn houve no código base, mas não é, infelizmente, um processo automatizado. É um caso do tipo que trabalha nisto e tem de olhar para o que mudou entre o Chromium 65 e o 67 e ver como isto afecta estes patches. É uma enorme base de código e vai mudar. Enquanto os patches são relativamente pequenos, as linhas em que eles são remendados podem ser significativamente diferentes entre as versões do lado do Cromo.
Max: Em resumo, a idéia é, porque o Pi é - relativamente falando - ainda menos potente que um PC desktop, usar realmente o hardware o máximo de tempo possível e otimizar os binários para ele.
Simon: Exactamente.
Max: Vamos mudar para o tópico do ambiente de trabalho do Raspberry Pi. Quais são os principais objectivos e ideias por detrás disto?
Simon: Os principais objetivos e idéias por trás disso ... quando eu comecei, meu primeiro dia no Pi Eben e eu nos sentamos, com Raspbian correndo LXDE, e ele disse que você pode fazer isso melhor. Eu joguei um pouco com ele, e pensei - bem, sim, certamente é possível torná-lo melhor. Se eu sabia como fazer melhor era a questão porque eu nunca tinha usado Linux antes naquele momento, então eu tinha uma curva de aprendizado e tanto.
Max: Você realmente nunca usou Linux antes?
Simon: Eu tinha iniciado o Linux algumas vezes experimentalmente, mas nunca tinha escrito código para Linux, nunca o usei por mais de dez minutos, [antes de começar o trabalho no Raspberry Pi].
Max: Uma das razões pelas quais você não usou o Linux foi o ambiente de trabalho? A forma confusa como é organizado?
Simon: Já usei Ubuntu, já usei Knoppix.
Max: Knoppix - na verdade, por um engenheiro alemão.
Simon: Sim, usei os dois e descobri que o ambiente de trabalho não era intuitivo em nenhum deles. Eu ainda não acho o ambiente de trabalho do Ubuntu intuitivo. Sempre levo dez minutos para tentar lembrar onde eles esconderam o terminal. Coisas como essa. Eu sinto que muitas aplicações Linux não são escritas com a usabilidade como prioridade. Elas são escritas para serem fáceis de escrever e não para serem fáceis de usar. O que é compreensível, dado que ninguém está a ser pago por isso. Mas eu senti ao olhar para o LXDE, como era então, que havia muito espaço para tornar isso muito mais amigável do que era, e certamente, eu acho, dadas as duas plataformas que eu tinha mais experiência nesse ponto, que eram Windows e Mac, pareceu-me haver uma grande lacuna na usabilidade entre o LXDE e qualquer uma delas. Se você quer um objetivo declarado para ele, seria tornar o Raspberry Pi Desktop tão fácil de usar quanto o Windows ou Mac. Idealmente como Mac, porque essa é a minha plataforma preferida. Em termos de facilitar, eu acho que as coisas mais importantes eram adicionar consistência. Eu acho que o problema com o LXDE é que ele é uma coleção de componentes de diferentes problemas que foram despejados todos juntos. Então você tem um gerenciador de janelas de um lugar, e você tem um gerenciador de arquivos de algum outro lugar, e você tem uma barra de tarefas de algum outro lugar. E não funcionou realmente - para mim - como um conjunto integrado de coisas. Se eu quisesse mudar a fonte do sistema, tinha de a mudar em três sítios para ter efeito em todo o lado. E este é um processo contínuo. Na nova versão, você provavelmente já viu o feiticeiro da inicialização.
Max: Sim.
Simon: Já tive críticas no blog de pessoas que dizem que não se deve usar um assistente de inicialização, porque isso desencoraja as pessoas de olhar para a configuração [arquivos de configuração].
Max: Na verdade, já vi esse comentário. A razão é tipo - "Fizemos da maneira mais difícil...
Simon: Exactamente. Esta é toda a minha frustração com as pessoas que [pensam assim]. É "Eu tive que sofrer, então os usuários de hoje têm que sofrer". Para mim, isto não compreende o propósito do Pi. O propósito de Pi sempre foi proporcionar um ambiente onde as pessoas possam aprender sobre computação. E se você está falando em aprender sobre computação, para mim, isso é aprender a programar um computador. Não é aprender a configurar um ambiente de trabalho Linux. Porque uma dessas é uma habilidade útil que você pode usar: uma vez que você aprende a programar, carreiras inteiras estão abertas para você. E isso é o que estamos estabelecidos para fazer. Aprender como configurar um desktop Linux - sim, é útil, se você precisa configurar desktops Linux. Não é o que Pi existe para ensinar as pessoas a fazer. E assim, do meu ponto de vista, quero tirar o ambiente de trabalho do caminho, para que as pessoas possam começar a programar. Esse é um objectivo principal do que estou a fazer: se as pessoas querem mudar o fundo do seu ambiente de trabalho, ou tornar a sua fonte maior para que possam ler coisas, não devem ter de escavar em doze ficheiros de configuração para fazer isto. Isso deve ser fácil de fazer.
Max: Absolutamente. A razão pela qual eu uso o Windows no meu desktop é que eu não posso ser incomodado com ... por exemplo, eu tenho uma configuração de vários monitores ... Eu tenho uma idéia aproximada de como fazê-lo no Linux, mas eu teria que editar arquivos de configuração, e colocar muito tempo nisso.
Simon: Novamente, vindo ao Linux como alguém que não o usou muito antes, quanto mais eu descobri sobre como você tinha que fazer estas mudanças de configuração, mais horrorizado fiquei com a confusão com a qual se espera que as pessoas lidem. É por isso que a primeira coisa que fiz foi escrever uma aplicação que mudou todas as configurações do seu sistema para si. Isso me pareceu ser a grande coisa como, por que ninguém tinha feito isso antes? Por que ainda era aceitável que você tivesse que abrir quatro configurações diferentes [arquivos] para que a coisa parecesse correta? Está a fazer tudo parecer como um ambiente. Esse sempre foi meu objetivo com o Desktop, ele precisa chegar a um ponto em que, como em um Mac, você nem pensa no Desktop. O Ambiente de Trabalho só funciona. E se você quiser mudar a imagem de fundo, ou tornar a fonte maior, ou quiser lançar uma aplicação, é óbvio como você faz todas essas coisas. Para mim o LXDE - enquanto ele forneceu uma grande base para trabalhar - e não há como eu denegrir o trabalho dos criadores do LXDE, eles fizeram algumas coisas fantásticas por baixo dele - só precisava ter aquele pouco de cuidado e atenção no topo dele. Foi isso que eu providenciei para torná-lo uma experiência que é agradável de usar. Esse é sempre o meu foco - é torná-lo agradável de usar, com um foco específico sempre que posso em torná-lo agradável de usar para pessoas que não usaram muito um computador antes, ou certamente nunca usaram um sistema Linux antes. Está a torná-lo familiar e mais intuitivo.
Max: Existe realmente algum problema de direitos autorais ou de design, por exemplo, como a barra de menu na parte superior do MacOS? Onde você tem que ter cuidado?
Simon: Eu não sei de nada, não. Tudo isto remonta aos dias da Xerox PARC e do desktop original. A metáfora da área de trabalho está bem estabelecida e ninguém é dono dela. Eu não sonharia em, por exemplo, tomar os ícones da Apple. Eu acho que os ícones da Apple são coisas de beleza. Você já tentou fazer zoom neles? Eles têm enormes quantidades de detalhes escondidos que você nunca vê. Se olhares para coisas como o ícone do correio num Mac, se o ampliares, podes ver que tem um carimbo do correio a dizer "Bem-vindo ao Cupertino" e coisas como esta. Eles se esforçam tanto em coisas como essa. Não há como eu colocar ícones da Apple no nosso sistema, isso claramente seria uma violação de direitos autorais. E também queremos estabelecer a nossa própria identidade visual, é por isso que encomendámos os nossos próprios ícones, é por isso que redesenhámos o aspecto das nossas janelas, é por isso que escolhemos o nosso conjunto de cores. E nada disso é criticado por mais ninguém. São as minhas próprias ideias sobre como o design deve ser. Penso em termos do conceito geral de um ambiente Windows que tem menus e barras de tarefas, etc. - que é praticamente do domínio público. As questões de direitos autorais são se você começar a roubar os recursos das pessoas, efetivamente. E nós não vamos fazer isso. Eu não quero fazer uma cópia do MacOS. O MacOS tem algumas ideias muito boas por trás disso. Mas isto tem de ser algo que seja reconhecidamente o Raspberry Pi. Pelo menos reconhecidamente diferente do MacOS. Da mesma forma que precisa de ser reconhecidamente tão utilizável como o MacOS.
Quando comecei, a única marca que tínhamos colocado no sistema operacional era que tínhamos um Raspberry no desktop. Além disso, era LXDE - não tínhamos feito mais nada a ele, porque não tínhamos tido as pessoas para trabalhar nele. É como Steve Jobs costumava dizer - as fontes são realmente importantes, a tipografia é importante. São coisas assim quando você tenta criar uma imagem visual que representa a sua marca. Para parecer um pouco pretensioso sobre isso. É fazer algo para o qual as pessoas olham, e dizem "oh, isso é o Pi Desktop".
Max: Por falar em tipografia, que tipo de fonte do sistema você usa como padrão?
Simon: É uma fonte de domínio público do Google chamada "Roboto". Tive que fazer um pouco de trabalho nele. É uma pergunta interessante se você é um nerd de fontes. Foi quase a primeira coisa que fiz, literalmente no primeiro dia, porque a fonte padrão do LXDE é feia - e eu sei que você pode fazer uma enorme diferença ...
Max: Você sabe o que foi?
Simon: Não me lembro - era muito horrível. Você pode fazer uma enorme diferença na forma como qualquer coisa é vista apenas mudando as fontes. Basta mudar um documento, de uma fonte serif para uma fonte sans-serif, o documento inteiro parece uma coisa diferente. É uma das coisas mais cruciais a fazer - Steve Jobs estava absolutamente certo sobre isso - se você acertar a fonte, muitas coisas ficam melhores imediatamente. Então, a primeira coisa que fiz, foi literalmente passar por todas as fontes grátis que pude encontrar - obviamente há milhões de fontes no mundo - mas você sabe. Eu precisava ser algo que fosse livre [para usar], algo que eu pudesse entender como entrar no Linux. Eu apenas passei por dezenas de fontes, e assim que me atirei ao Roboto - eu estava tipo, sim, é isso, parece que eu quero que seja assim. Felizmente era de domínio público, por isso podíamos usá-lo. O problema foi - por isso instalámos o pacote Roboto, e alguns meses depois fizemos uma actualização do sistema, e a fonte ainda era Roboto, mas a fonte tinha mudado. E não chegou a ser tão bom. O Google tinha feito algo com as métricas da fonte. Eu olhei e fui Eugh! - não era isso que eu queria. Então, na verdade, o que temos é uma versão antiga do Roboto, que tem o seu próprio pacote. Eu chamo-lhe Piboto, só para o distinguir do Roboto. Não posso continuar a seguir o pacote Roboto, porque mudou a fonte e eu não gosto do novo.
Max: Isso é uma surpresa bastante desagradável, diria eu. Porque esperas que as fontes fiquem na mesma.
Simon: Não foi. Eles mudaram-na. E eles mudaram ao ponto de eu dizer "não, não vamos seguir isto, vamos pegar a nossa própria versão disto agora, e vamos ficar na minha versão".
Max: Especialmente em telas muito pequenas - como as telas Adafruit 2,8" - você tem que ter uma fonte especial.
Simon: Sim, os pontos menores - você precisa ter uma fonte que seja projetada para funcionar em situações como essa. Então estamos nesta versão antiga do Piboto, como é chamado, e uma das outras coisas que é interessante - se fores um cromo da fonte - é falar de consistência. As fontes obviamente têm pesos diferentes no Linux - leve e fino, médio e pesado, e ousado, etc. E algumas aplicações - isso na verdade é uma coisa GTK 2 vs GTK 3... ; eu sou muito pró GTK 2, eu sou realmente muito anti GTK 3. Eu acho que eles tomaram algumas decisões muito ruins no GTK 3. Coisas como se você rodar uma aplicação GTK 3 sob o sudo, parece diferente do que parece se você não rodar, por causa da maneira como eles estão puxando as informações para dentro dela. Então se você rodar sob o sudo, você não terá o tema original do usuário no GTK 3, você terá o tema raiz do GTK 3. O que pode não ser o mesmo. Coisas assim. Se você está tentando ser consistente, o GTK 3 não é tão bom quanto o GTK 2. E este é o ponto que eu estava fazendo sobre o GTK 3 - em termos do que é ruim sobre ele em termos de fontes, é que seu manuseio de pesos de fontes não é bom.
A fonte do sistema que usamos é Piboto Light. Mais uma vez, eu quero a versão Light, porque a versão Light parece mais agradável do que a versão normal. Existem algumas aplicações - por exemplo, o Chromium, creio que é uma aplicação GTK 3 - onde defines a fonte para ser Piboto Light, e deita fora a Light, apenas te dá Piboto. Acho que isto é uma coisa do GTK 3, onde o manuseio do peso de algumas fontes não é muito bem feito. E isto, mais uma vez, acho que entra nas suas coisas de sudo e não-sudo, há lá algumas coisas que não são feitas como deve ser. Eu realmente criei insetos contra [isto] - e eles vão: "Não, é suposto funcionar assim, está tudo bem". Eu tenho que trabalhar em torno disto, porque não faz o que eu quero que ele faça.
Max: Como você lida com isso?
Simon: A forma como resolvi a questão da fonte com tudo, é que existe a nossa fonte, que normalmente se chama Piboto, agora se chama Piboto LT, porque é o peso leve. Agora as pessoas não podem quebrá-lo, porque se você escolher a nossa fonte, é o peso certo o tempo todo.
Max: Com a Piboto LT há apenas um peso, apenas o peso leve.
Simon: Você pode negritá-lo - ainda inclui as versões em negrito e itálico. Mas a versão normal é a Light. É a única maneira de eu conseguir que tudo pareça consistente. Com a escolha das fontes, acho que o peso é tão importante quanto a própria fonte, porque mudar de peso pode mudar enormemente a aparência da fonte. Eu passei muitas horas felizes brincando com o FontForge, criando minha versão da fonte, o que agora significa que tudo parece consistente. Esta é uma das mudanças no lançamento mais recente, é que agora o Chromium está realmente usando a mesma fonte que tudo o resto, enquanto antes não estava. Antes estava a usar o Piboto num peso normal, ao contrário do peso leve.
Max: Acho que isto é algumas das coisas que as pessoas notam - parece um pouco estranho - pelo menos de forma subliminar.
Simon: Subliminamente é uma boa maneira de ver as coisas - eu sempre pensei que algo não estava bem no Crómio. Mas eu olhava para os cenários, e os cenários diriam que eles têm a fonte Light. E assim que fiz essas mudanças - era isso que estava errado com o Crómio. O Crómio agora parece certo. O crómio agora combina com tudo o resto. É uma dessas coisas - se você não consertar na primeira vez que notar - você se acostuma. E depois pensas, bem, é assim que as coisas são.
Pôr o Crómio a trabalhar foi um passo tão grande em primeiro lugar. O crómio foi difícil, conseguir que funcionasse bem com o gerente da janela e que ficasse bonito no gerente da janela. Um dos meus maiores ódios são aplicações que querem ter a aparência que querem, ao invés da aparência que o sistema quer que elas tenham. E o Chromium é aquele em que ele tenta usar suas próprias cores para barras de janela, e coisas assim. Ele não joga bem com os gerenciadores de janelas. Passei muito tempo quando o colocamos, tentando fazer com que ficasse realmente bonito.
Há uma anedota sobre isso. Temos o Crómio no sistema. E o Eben usa o Crómio noutros sistemas. Eu não uso o Chrome, porque sou um utilizador Mac, uso o Safari.
Max: Há cromado para ...
Simon: Há o Chrome para Mac, não o recomendaria porque faz exactamente o que eu disse na altura - parece uma aplicação Google num Mac, em vez de se parecer com uma aplicação Apple no Mac. O Eben está habituado a utilizar o Chrome. E o Chrome coloriza sua borda, então você tem abas e tem um fundo colorido particular - e o Eben estava acostumado a isso, porque ele o usava em um Mac. Eu investiguei, e não se encaixa no resto das nossas aplicações, ele precisa mudar. Eu estava brincando com várias combinações de cores, e liguei a opção de usar os quadros do Openbox - o gerenciador de janelas do LXDE - com o Chromium. Porque, por padrão, você perde a moldura da janela. Tendo um quadro de janela, Eben disse "que não fica bem com um quadro de janela, que não se parece mais com o Chrome". Eu disse, "acredite em mim, isto vai estar certo. Mas ele precisa de ter o caixilho. Porque precisa de corresponder a tudo o resto." E o Eben estava tipo a tutelar e a murmurar, "estás a cometer um grande erro - não deves fazer isso" Eu disse "confia em mim, isto vai estar certo no final". A questão era que tinhas as cores do Crómio dentro da nossa moldura da janela. Eu precisava de saber como recordar a janela que o Crómio te dá - o fundo por detrás das abas. Precisava de fazer com que isso correspondesse à cor que usávamos. Levei alguns dias de brincadeira para tentar descobrir onde ficava a configuração, e mudei a configuração. O Eben foi até à minha secretária depois de eu ter feito isto, e eu disse: "Dê uma vista de olhos ao Cromo agora. "Ele olhou para ela e foi-se embora: "Tudo bem", eu disse-lhe: "Eu disse-lhe que ia ficar bem". É uma questão de consistência. É sobre fazer com que pareça como se espera que pareça. O que Eben tinha visto, era algo que não se parecia com o cromado e não se parecia connosco.
Max: Algo completamente diferente, então?
Simon: Sim, então isso pareceu errado. Mas eu sabia que para fazer as coisas bem, é preciso ter cores e fontes certas. E assim que acertas as cores, e combina, o Eben disse: "Oh, está bem." - "Sim, eu disse-te que estaria. É porque agora parece-se connosco. Estás habituado a parecer o Chrome e o que estavas a ver é esta fase embaraçosa no meio onde eu ainda não a tinha acabado." Mas é por isso que coisas como o gerente da janela são importantes. É uma forma muito importante de te dar um olhar e uma sensação consistente. Portanto, aplicações que não brincam bem com o gerente de janela me irritam, porque o gerente de janela está lá por uma razão.
Max: Essa é uma das coisas que me incomoda no ambiente de trabalho do Linux - a consistência, como você diz. Há o GTK, depois há o ambiente de trabalho do KDE...
Simon: E a coisa sobre o GTK é - se alguém diz que está escrevendo um aplicativo para nós, no que eles devem se basear, minha resposta é baseá-lo no GTK 2, porque eu gastei muito tempo fazendo nosso tema GTK 2 funcionar muito bem. Parece o que eu quero que pareça. Toda vez que o GNOME lançava um novo GTK 3, eles brincavam com o tema do GTK 3. E eu passei semanas tentando fazer os temas combinarem. Para que um aplicativo GTK 3 se pareça com um aplicativo GTK 2 em nós. E toda vez que o GNOME mudava as coisas. Como eu disse, o GTK 3 não parece fazer isso tão bem quanto o GTK 2 fazia. O GNOME parece ter mudado para ter um tema que está ligado a ele, e você é realmente encorajado a não mudá-lo, enquanto com o GTK 2 você sempre teve o tema que você queria. Eu criei efetivamente um tema GTK 3 que sombreia o nosso tema GTK 2. E de vez em quando o GNOME faz algo no GTK 3 que eu não posso replicar no GTK 2. Ou que se choca mal com o nosso tema. E então eu tenho que passar por essa fase de tentar fazer os dois parecerem o mais parecidos possível, porque as pessoas notam que esse aplicativo parece um pouco diferente. Você não necessariamente percebe isso explicitamente, mas subliminarmente e não parece muito certo.
Max: É um verdadeiro desafio, não é? Isso é algo que você não teria que fazer em um Mac ou Windows.
Simon: Não, porque só há um kit de ferramentas, certo. E a outra coisa que entra nele recentemente é o Qt. Porque o novo visualizador de PDF - quando introduzimos isso desta vez - quero dizer que o Xpdf é tão antigo e datado, que precisávamos de nos livrar dele. Era uma das coisas da minha lista no primeiro dia, precisamos de um novo visualizador de PDF, finalmente consegui fazê-lo. E eu passei e tentei todos os visualizadores de PDF que iriam instalar no Raspberry Pi. Estou olhando para as coisas em termos de aparência, como ele funciona, como ele faz - porque a interface do Xpdf é uma lista de páginas ao lado, em vez de poder continuar a percorrer páginas, são coisas assim. E precisava de se sentir como um visualizador de PDF moderno. E o melhor candidato era o visualizador Qpdf, que é um aplicativo Qt. Portanto, não se parecia com nada mais na plataforma. Então meu próximo desafio foi, eu preciso fazer o Qt theming parecer o máximo possível com o nosso GTK. E isso foi várias semanas de trabalho. Novamente, porque eu construí esta aplicação que muda coisas como configurações de janelas e configurações de aparência de janelas. Então isso tem que ser personalizado para ter certeza de que ele muda os [arquivos de configuração do Qt também], se você mudar as coisas lá dentro. Eu ainda estou frustrado - eu consegui fazer com que eles pareçam praticamente idênticos. A única coisa que eu não posso fazer é auto-cortar. Então, quando você segura a tecla Alt, os sublinhados aparecem nos atalhos do menu. O Qt não suporta isso. Na verdade, passei alguns dias analisando o código Qt - adicionei isto ao LibreOffice. O LibreOffice não tinha isso, até que eu adicionei a ele.
Max: No que é que o LibreOffice se baseia na realidade.
Simon: O LibreOffice é o seu próprio kit de ferramentas, completamente diferente. E não suportava o destaque deste autoacelerador, então o código do LibreOffice que faz isso foi escrito por mim. Porque eu decidi que precisávamos dele. E eu o fiz subir a corrente. E eles disseram: "Oh, isto é contra uma versão antiga - podes fazê-lo contra a nova versão". E eu disse: "Não, eu realmente não tenho tempo para fazer isso. Aqui está, faz o que quiseres com ela - é para nós e não para ti." E em cerca de uma semana alguém no LibreOffice pegou neste código que estava à espera que alguém o escrevesse e puxou-o para a versão [recente]. Parecia que eu tinha feito aquilo que as pessoas esperavam há algum tempo, o que é uma sensação muito agradável. Procurei fazer a mesma coisa para o Qt, seria um pesadelo adicioná-lo. Os ganchos não existem para fazer isso - as mensagens para dizer onde a tecla está sendo pressionada. Passei alguns dias olhando para ela e decidi que teria que viver sem ela. Essa é a principal diferença visual entre o visualizador Qpdf e outras coisas na plataforma - ele tem sublinhados debaixo de todos os seus aceleradores o tempo todo e você não pode desligá-lo. A certa altura podemos voltar a contar tudo no GTK, mas é um grande trabalho.
Max: Quanto trabalho seria, na verdade, para reescrever o visualizador Qpdf no GTK?
Simon: Eu não sei para ser honesto. É algo que o Eben me pediu para considerar fazer. A renderização dos PDFs é tudo feito por uma biblioteca de terceiros. Por isso, tudo bem - é apenas recriar toda a concha à sua volta. E a concha não é muito complicada. Você tem uma barra de ferramentas, tem alguns botões, tem alguns menus. Vai depender muito de coisas como, quantos diálogos de preferências estão lá dentro, porque você teria que refazer cada um deles.
Max: Essencialmente você teria que ir e reescrever toda a interface.
Simon: Sim, reescreve tudo. Não há maneira de o fazer com um processo automatizado, teria de o fazer à mão. Por isso, sim, acho que seria um trabalho demasiado grande. Mas seria bom, só para te livrares dos sublinhados. (risos). Queremos passar três meses a mexer nisto, para nos livrarmos dos sublinhados? Provavelmente não, provavelmente há coisas melhores em que eu poderia gastar o meu tempo.
Max: Tem mesmo leitura por abas?
Simon: Acho que sim, não tenho a certeza, nunca o liguei.
Max: Outra coisa - Eu pessoalmente tenho lutado com os visualizadores de PDFs do Linux com o preenchimento de formulários PDF. É uma coisa que é importante para o trabalho de escritório, como governos.
Simon: Sim, eu sei. Tenho que verificar, eu nunca tentei.
Max: Essa característica em particular parece difícil de fazer.
Simon: Vou dar uma vista de olhos - é uma boa pergunta.
Max: Voltando para o Ambiente de Trabalho Raspbian. Que outros problemas você planeja resolver?
Simon: Agora estou a trabalhar nisto há quase quatro anos. Acho que tenho a maior parte do trabalho como gostaria que fosse. Acho que o que estamos a pensar fazer agora é personalizar mais alguns ícones. Os ícones são um trabalho muito grande - um único ícone requer muito trabalho. Você tem que ter certeza de que funciona em todos os tamanhos diferentes, você está fazendo tudo isso [massageando] em nível de pixel individual em cada um dos doze tamanhos. Então todos os ícones do nosso sistema estão prontos, acho que o nosso próximo passo vai ser os ícones da barra de ferramentas. Nós atualmente usamos um tema fallback, então eles vêm de - eu acho que é um tema fallback do GNOME que usamos no momento. E vamos fazer coisas como olhar para as barras de ferramentas no LibreOffice, no editor de texto e no visualizador de PDFs, para que eles realmente comecem a ficar alinhados com nosso visual e sensação.
Max: Porque o LibreOffice usa os seus próprios ícones ...
Simon: Há um conjunto padrão de ícones que são definidos para ambientes de trabalho. Coisas como cortar e colar, e arquivar e copiar, todos eles são padrões. Há vários temas de ícones, todos com suas próprias interpretações, o LibreOffice então adiciona alguns de seus próprios temas em cima disso. Eles usam o tema de ícones para muitos deles. Então você já tem o problema de ter dois designers trabalhando em ícones e eles parecem diferentes - e mais uma vez isso é uma coisa que estamos tentando evitar. Estamos a tentar fazer com que todos os ícones pareçam ter vindo do mesmo sítio. Porque todos os ícones da Apple parecem ter vindo do mesmo lugar. Na maioria das vezes. Só estamos a tentar obter consistência visual. Então, os ícones da barra de ferramentas são a próxima área que vamos ver. Em termos de aparência geral, acho que estamos quase num ponto em que as pessoas já se habituaram ao seu aspecto. O que eu consideraria fazer no futuro é o que a Apple fez quando se mudou de qualquer versão do MacOS que fosse - a Apple teve uma mudança bastante grande na interface.
Max: Eles costumavam fazer esta coisa de material natural, e depois mudaram-se...
Simon: Eles tiveram uma mudança de fonte. Acho que quando eles mudaram de gatos para montanhas, mudaram a fonte.
Max: Eles não usaram a Helvetica?
Simon: Não, esta não é a fonte do sistema. Não consigo lembrar-me. Eles fizeram uma mudança com a fonte, e fizeram vários ajustes na UI. Eles não eram grandes, mas a modos que mudaram um design de interface que já tinha dez anos ou mais, e subiu um pouco de repente.
Max: Um design refrescante.
Simon: Exactamente. Eu não tenho intenção de mudar nossa aparência geral, porque eu acho que é muito boa como é, mas estamos considerando talvez fazer um tipo de coisa similar - para mostrar que fizemos uma nova versão quando mudarmos para Buster [nota da transcriber: próxima versão do Debian]. Uma das coisas que é um pouco frustrante é que quando mudamos de Jessie para Stretch, ninguém realmente notou. (risos) Porque não há diferença visual - eles parecem exatamente os mesmos. "Oh, agora temos o Stretch - óptimo. Qual é a diferença? Bem, parece a mesma coisa."
Max: Talvez você pudesse fazer algumas fotos de fundo diferentes?
Simon: As fotos de fundo são lindas - são feitas por um cara aqui que faz muita fotografia. E são deslumbrantes. Assim que as vimos, Eben e eu nos sentamos, e olhamos através e aquele com a estrada - dissemos que esse seria o pano de fundo. E por mais que eu adore a fotografia, já a vi muitas vezes. E é engraçado - é uma das coisas sempre que vejo uma foto de um Raspberry Pi Jam ou de um Code Club, é apenas o meu design do desktop - é uma coisa maravilhosa ver que as pessoas estão a usá-lo. Mas eles têm sempre a mesma imagem do ambiente de trabalho. E é como: colocamos muitas outras, tentamos algumas das outras... ! Isso é outra coisa que talvez possamos refrescar para o novo [lançamento]. Eu realmente escrevi coisas para mudar aleatoriamente o fundo do desktop no boot, foi uma das coisas que alguém sugeriu, mas eu meio que me distraí com outra coisa depois de terminá-la, então eu nunca a habilitei. Esse é um bom ponto - eu vou ligá-lo caso as pessoas o queiram. Algumas das outras fotos são adoráveis.
Em termos de aparência geral e sinto-me feliz com isso. A outra coisa que estamos a pensar fazer é, no primeiro dia eu tinha uma lista de aplicações que eu queria ter como padrão na imagem. E agora chegamos ao ponto - coisas como ter uma suíte de escritório, ter e-mail, ter um bom visualizador de PDF, obviamente todas as ferramentas de programação que temos, um bom editor de texto, mas um daqueles que ainda está faltando é um player multimídia na GUI. E na verdade a razão de ainda não termos lançado um desses, é que queríamos ter a mesma aceleração de hardware que temos para a reprodução de vídeo em Chromium, etc. Tem estado na minha lista para fazer literalmente desde o primeiro dia. Agora estamos realmente trabalhando nele - não posso prometer uma data em que ele vai aparecer, mas ele está realmente em progresso e espero vê-lo em breve. É a única coisa que sinto que nos está a faltar. É baseado na VLC.
Max: Isso seria absolutamente fantástico. É um dos melhores jogadores. Não há anúncios nele.
Simon: É um bom produto. Toca tudo. Eu uso-o em casa, uso-o no meu Mac. Era a coisa óbvia a usar. Eles [já estavam começando a habilitar a aceleração do hardware no código].
Acho que é a última candidatura, que eu queria mesmo ver que ainda não fizemos. O visualizador de PDF a ser actualizado, com isso aí dentro, temos um conjunto de funcionalidades que é comparável ao que se obtém no Windows ou Mac. Que é para onde eu queria ir. Então o material que as pessoas esperam encontrar num computador hoje em dia. Eu queria ter a certeza de que tínhamos tudo isso. E, claro, a outra coisa que introduzimos agora com o último lançamento é a aplicação de software recomendada, que mais uma vez é algo que eu queria fazer bastante cedo. Porque adicionar e remover software, se você for um usuário experiente e souber [como usar] o apt, tudo bem. Eu adicionei uma GUI para adicionar e remover um programa bem cedo, o que foi muito trabalho para arrumar, não consigo lembrar como é chamado. A UI foi um pesadelo quando olhei pela primeira vez para [ele]. Novamente eu fiz esta coisa onde eu olhei todos os pacotes que estão lá fora para encontrar aquele que melhor se encaixa em nossa aparência, mas [quase ninguém] o usa. Porque há um número tão grande de programas nele, e não há informação sobre quais são os bons, e não há informação sobre o que eles podem realmente fazer. E na verdade, você pode fazer atualizações do sistema e coisas nele. Mas mais uma vez, ninguém o usa para isso, todos usam a linha de comando. O que é bom. Mas eu senti isso - há muitos anos atrás, antes de eu começar, nós tínhamos a Pi Store e coisas assim, e esse tipo de coisas morreram.
Max: Qual foi a razão para a morte da loja Pi na verdade?
Simon: Acho que as pessoas simplesmente deixaram de o apoiar. Não sei se alguma vez houve muito sobre isso. Acho que foi fornecido por uma terceira parte, e deixou de ser apoiado. Não acho que tenha sido uma decisão consciente...
Max: Nunca descolou realmente...?
Simon: Não, acho eu. As pessoas estão habituadas às lojas App em plataformas como dispositivos móveis e, na verdade, no Mac e Windows hoje em dia - e uma das coisas que Eben sempre disse, é que todo o pacote de download é em parte sobre o desktop, e em parte sobre a curadoria de software. Sobre o fornecimento de software que nós achamos que é bom. E até agora a única maneira que temos sido capazes de fazer isso é colocar tudo na imagem, porque as pessoas não vão encontrá-lo de outra forma. E assim a imagem tem sido cada vez maior, à medida que as pessoas nos fornecem software. E é ótimo que as pessoas nos forneçam esse software - não quero desencorajar as pessoas de fazer isso - algumas das coisas que tivemos são gratuitas para nossos usuários que outras pessoas têm que pagar. É fantástico.
Max: As coisas da Wolfram...?
Simon: As coisas da Wolfram. RealVNC. Este é um software comercial, que os usuários Pi recebem de graça. E estamos muito gratos às empresas em questão por fazerem isso. Mas a única forma de conseguirmos levar este software às pessoas é: "OK, vamos adicioná-lo à imagem". E a imagem agora está a rastejar - a imagem agora é de 1,75 GB. É grande. Sei que muitas pessoas pensam que "sim, agora temos banda larga rápida". Então, quem se importa?" Mas lembro-me que quando fiz o download de um gigabyte demorei três ou quatro horas.
Max: Também alguns dos países que a fundação Raspberry Pi quer ir para não ter esse tipo de banda larga.
Simon: Precisamente. Por isso sinto que é demasiado grande. A intenção do Software Recomendado era diminuir o tamanho da imagem baixada, diminuir o número de coisas nos menus, apenas e tentar diminuir um pouco as coisas. Por que ainda deixar as pessoas saberem: "Ei, existem estas grandes aplicações - são gratuitas, é fácil de instalá-las. Por que você não tenta". Mas sem fazer todo mundo baixá-los o tempo todo, o que sempre me pareceu um pouco injusto: "você deve baixar tudo o que dizemos que você deve".
Então, sim, acho que é um bom lugar para se estar - que temos efetivamente nossa própria loja de aplicativos com a vantagem de que todos os aplicativos são gratuitos.
Max: Na verdade, também é muito importante para pessoas que são novas. Linux - funciona de forma um pouco diferente do que no Windows. No Windows você baixa o instalador, e o executa. Eu acho que a maneira como o Linux o faz é muito mais inteligente, com o gerenciador de pacotes.
Simon: É muito mais fácil. apt é ótimo, mas mais uma vez um dos meus objetivos é que as pessoas não tenham que usar um terminal. Novamente [usuários antigos do Linux vão]: "Porque não estás a ensinar as pessoas a usar o terminal?" - Bem, eles não deveriam ter que usar um terminal, eles não estão acostumados a usar um terminal. O terminal está lá, se você quiser usá-lo, é por isso que ele está na barra de tarefas, porque é uma coisa útil. Mas para alguém que só viu um Mac ou Windows PC a ideia de que de repente tem de começar a digitar coisas para instalar programas - não. Eles podem chegar a isso mais tarde. Um dos objetivos do design sempre foi - as pessoas não deveriam ter que ver o que acontece dentro de um terminal. Tudo isso deveria ser apenas apontar e clicar.
Max: Você só quer um embarque fácil.
Simon: Exactamente. Está tudo ali e debaixo do capô, se eles quiserem brincar com ele. Se você quer entender como um sistema Linux é configurado, ou o desktop X é configurado, vá e veja minha aplicação que altera os arquivos de configuração. Porque isso mostra-lhe, onde estão os ficheiros, o que precisa de fazer, quais são as linhas nos ficheiros que são importantes. Eu acho, que meu C provavelmente não é a melhor ferramenta de aprendizagem do mundo, mas se você pode ler meu C, você pode ver - esse é um bom lugar para ir. Então como você muda a fonte do sistema - "oh, há uma função aqui se você quiser mudar a fonte do sistema - o que isso faz"?
Se você chegar ao ponto em que está aprendendo a programar, você quer ler algum código de exemplo. Eu tento escrever um código que seja razoavelmente legível. Você pode dar uma olhada nisso e depois aprender com ele. É quase uma ferramenta que ajuda as pessoas a aprender como configurar um desktop Linux - além de uma forma de fazer isso por si só.
Max: Uma das coisas que você mencionou antes foi Buster, o próximo lançamento do Debian. Que tipo de mudanças você espera dele em geral e para o Raspberry Pi especificamente?
Simon: Eu não olhei muito para o Buster. Tivemos uma grande mudança quando mudámos de Wheezy para Jessie, por causa do sistemad.
Max: Acho que isso foi muito importante para a velocidade da bagageira.
Simon: Sim, a velocidade de arranque fez uma enorme diferença. Eu não olhei em profundidade para Buster, mas não estou ciente de nenhuma mudança tão grande e semelhante. O Buster parece ser mais evolutivo do que revolucionário debaixo do capô. Eu acho que com todas essas coisas - [como eu disse] a maioria das pessoas não notou a mudança entre Jessie e Stretch. Eu não acho que haverá grandes mudanças do ponto de vista do usuário no Buster. As mudanças que eu acho que serão principalmente evolutivas entre as aplicações. Mas eu ainda não fiz uma grande quantidade de investigação. Só para vos dar uma ideia - é provável que o Buster não congele até ao Q1 no próximo ano, é provável que se torne a rotunda estável da versão Q2 no próximo ano. Quando fizemos Jessie, estávamos bastante atrasados. Eu acho que nosso lançamento do Jessie foi cerca de 6 meses após o do Debian. Estávamos muito mais próximos, eu acho que estávamos dois meses depois do Debian. E eu quero estar no mesmo [tipo de período de tempo desta vez]. Então eu vou começar a olhar para o Buster na primeira metade do início do próximo ano. Vou começar a olhar para o que precisamos para portar para o Buster. Do meu ponto de vista, muitas das coisas estão tentando fazer com que as coisas de configuração ainda funcionem, certificando que tudo ainda pareça certo, certificando que as coisas de configuração não tenham mudado. Enquanto o LXDE não tem uma grande quantidade de churn nele, porque não está sob uma grande quantidade de desenvolvimento ativo, mas ainda haverá mudanças. E haverá um novo GTK 3, e eu posso dizer agora sem sequer olhar para ele que provavelmente vou passar um mês apenas tentando fazer tudo funcionar corretamente no GTK 3 ainda. Metade das funções terão todas mudado, e haverá coisas diferentes... Eu já passei por isso antes. Eu quero estar em uma posição onde nós poderemos ir viver com nossa própria versão do Buster logo após o Debian, dentro de um mês ou mais. Nós agora temos a experiência de fazer isso algumas vezes debaixo dos nossos cintos, então nós sabemos como isso funciona. Então, sim, nós esperamos estar fazendo Buster relativamente logo após o Debian no próximo ano.
Max: Nós falamos sobre consistência, falamos sobre uma maneira fácil de acessar pacotes, pacotes curados, para entregar um bom conjunto de pacotes padrão. O que mais você acha que falta em um ambiente desktop Linux moderno?
Simon: Uma outra coisa a mencionar é obviamente o Feiticeiro da Inicialização. Era algo que queríamos fazer e tentar tornar o processo real de ligar pela primeira vez um pouco [mais fácil] para as pessoas se prepararem.
Max: Creio que tem um link para iniciar as aplicações recomendadas no final do Startup Wizard?
Simon: Não o temos de momento, mas foi algo que considerámos fazer. O Startup Wizard foi uma coisa interessante de se fazer, porque, na verdade, surgiu da necessidade de definir um país para o WiFi. Para 5 GHz. Não poderíamos certificar nosso hardware wireless sem isso - você tem que forçar o usuário a selecionar um país WiFi se você quiser obter a certificação WiFi. E nós brincamos com várias formas de fazer isso. Nenhuma delas era particularmente ideal do ponto de vista do usuário. E também temos coisas como - muitos usuários Pi nunca mudam a senha. Fizemos várias coisas ao longo dos últimos anos para tentar aumentar a segurança - para que não haja um buraco aberto no Pi, assim as pessoas não podem SSH em usar uma senha padrão, etc. Irrita-me que tenhamos de fazer isso. Irrita-me que as pessoas desejem fazer coisas criminosas, mas isso é a vida. Em um mundo ideal não teríamos que fazer isso. É uma pena que o tenhamos feito. Sempre tentamos manter um equilíbrio entre não incomodar muito os usuários, tornando a segurança muito desagradável e também não ter o potencial para o Pis das pessoas ser tomado e usado para fins maliciosos. Acho que sempre que fizemos uma mudança, monitorei de perto os comentários nos fóruns depois. E enquanto metade deles estiver dizendo "você foi longe demais", e metade deles estiver dizendo "você não foi longe o suficiente", então fizemos a coisa certa. Porque nunca todos eles vão dizer "ei, você fez exatamente a coisa certa". Nunca vais manter todos felizes, certamente com coisas como segurança. Então nós queríamos tentar encontrar uma maneira de - novamente sem forçar as pessoas [gargantas] - "Você gostaria de mudar sua senha". Isto é algo que outra pessoa tinha sugerido.
Eu estava jogando com o código de localização do Linux - formas de configurar o teclado e configurar coisas como essa. Mais uma vez, isso é extremamente complicado para um usuário, um usuário que nunca viu algo assim antes. E comecei a pensar, talvez possamos combinar muitas dessas coisas em um só lugar. O Feiticeiro da Arranque meio que cresceu a partir disso. A primeira parte disso foi a minha passagem e a minha escolha: "OK, qual é o número mínimo de coisas que eu posso pedir a um usuário para definir, o que significa que no final do dia eles têm WiFi funcionando, eles têm a linguagem certa, o teclado deles está certo, esse tipo de coisas". E qual é o número mínimo de controles que posso dar a eles para fazer isso". O resultado disso é algo que, de certa forma, é bastante restritivo - e eu sabia que íamos receber reclamações sobre isso - [por exemplo, se] eu estou no Japão, mas quero usar meu Pi em inglês, e não posso. Bem, eu sei que não pode, mas eu disse de cara - e nós não tiramos nenhuma das antigas ferramentas de configuração, elas ainda estão todas lá - mas novamente, isto é para a maioria dos usuários que têm um caso de uso direto, eles agora só dizem: "Eu estou neste país, eu estou usando meu Pi nesta língua que eles usam neste país e meu fuso horário é esta cidade neste país". E eles não têm de ver o enorme pântano de outras coisas, que de outra forma teriam de percorrer.
Eu tenho coisas erradas nele - uma coisa engraçada que aconteceu: não há mapeamento automatizado no Linux entre o código do país e do teclado. Muitos teclados usam apenas o código do país como nome, muitos deles não. E eu não notei o quanto o problema estava espalhado, não havendo um mapeamento de um para um. Então quando lançamos isso, a primeira vez que soube disso foi quando alguém na Argentina reclamou que ele estava digitando no teclado agora e estava saindo em árabe. E eu fui e olhei para ele, e vi que "OK, você está muito certo - porque a Argentina tem um código de país de AR, não há teclado de AR, há um teclado ARA que é usado por todos os países do Oriente Médio". OK, temos que consertar isso". Alguém realmente me apontou [para] que não há banco de dados no próprio Debian, o único lugar onde há um banco de dados para isso é no instalador do Debian. Alguém me apontou de forma útil para ele. Foi o que eu passei a semana passada fazendo, puxando aquele banco de dados [e adicionando-o]. Então, teclados no próximo lançamento devem ser mais precisos. Esse é o tipo de coisa que você realmente só descobre quando você empurra a coisa para fora e dezenas de milhares de pessoas ao redor do mundo começam a usá-la, e começam a contar sobre os problemas que estão tendo. Com tudo isso, eu sabia que não há como tirá-la de lá e tê-la perfeita na primeira vez. Em casos como este, é realmente útil obter os relatórios dos bugs de volta. Eles ajudam-te a ver as partes que perdeste.
Obviamente, estamos no Reino Unido. Não posso testar as traduções das coisas em alemão. Porque eu não consigo ler alemão, bem eu consigo ler francês, eu consigo ler um pouco de alemão. A localização no Linux é na verdade um grande problema - já que você estava perguntando sobre problemas. Não que eu ache que consiga resolver, mas acho que consigo fazer ajustes para o melhorar. O suporte à localização não é tão bom como deveria ser. Vou dar-lhe outro exemplo. Há uma aplicação chamada Zenity. E o Zenity é usado para criar diálogos GTK a partir de scripts shell. Você pode dizer a ela "crie-me um diálogo de senha, ou crie-me uma caixa de listagem ou algo do tipo". E Zenity irá então criar um controle com o qual o usuário pode interagir feito no GTK, para que ele combine com as coisas. E nós usamos isto para algumas coisas. Notei que em alguns destes diálogos Zenity, mudei o sistema para alemão, e metade do texto na caixa de diálogo Zenity se transformaria em alemão, e metade ficaria em inglês. Eu passei pelas bases de dados de localização da Zenity, e havia traduções em alemão e traduções em francês para todas as cordas que lá estavam. Não conseguia perceber por que as coisas não estavam sendo traduzidas, por isso passei algumas horas vasculhando o código. E acabou, na versão do Zenity que navega com o Stretch, metade das cordas da tradução estão quebradas. Então o código nunca irá traduzir as cordas corretamente.
Max: Como é que eles estão partidos?
Simon: Penso que o que tinha acontecido, era que as pessoas tinham tentado passar de um sistema de fazer coisas para outro sistema de fazer coisas e tinham ido a meio caminho. Mas ninguém tinha reparado. Parece-me estranho, que eu não tivesse em momento algum um utilizador alemão Pi a vir ter comigo e dizer: "Bem, espera aí: porque é que só está metade das coisas na caixa em inglês, metade das coisas em alemão?"
Max: Acho que os utilizadores estão habituados a que o computador não funcione.
Simon: Esta é exactamente a questão. Certamente com o Linux - eu tenho um colega sentado ao meu lado que é um entusiasta do Linux de lã, ele não tocaria numa máquina Mac ou Windows se você o obrigasse - ele é parte ucraniano e muitas vezes testa em línguas diferentes. Eu disse: "Já reparou que estas caixas de diálogo têm metade do texto em ucraniano e metade em inglês?" E ele disse: "Bem, é mesmo assim que funciona." E eu disse: "Não, não deveria ser!" Isso agora está resolvido. Na última versão da Zenity, alguém reparou que isto está estragado. Então agora estamos a enviar a versão "buster" da Zenity em cima do Stretch. Fizemos um backport para que funcionasse. Mas são coisas assim. A localização é muito fácil de se enganar. Às vezes, as pessoas enviam pedidos de localização no nosso código. Se as pessoas enviarem pedidos de correção de bugs e coisas assim, eu fico muito feliz em aceitá-los. Quando as pessoas são criativas e decidem, eu vou escrever esta coisa nova para você - então invariavelmente [eu descobrirei] que elas não colocaram o suporte de localização nele, e coisas do tipo. Porque eles não pensam em fazer isso. Eles apenas o fazem na sua própria língua. As pessoas que pensaram sobre o suporte à localização no Linux - na verdade é um sistema muito bom, funciona muito bem. E há muitas ferramentas para o ajudar a fazer isto bem. Mas mais uma vez, como você diz - as pessoas não tendem a reclamar quando ele não funciona. Elas apenas aceitam, "bem, isto não funciona". Não há razão para isso não funcionar muito bem - porque o [Linux tem] uma maneira de o fazer. Então essa é uma das coisas que eu gostaria de ver melhor feita no futuro. Nós estamos tentando fazer melhorias [aqui]. Eu acho que o Pi já funciona muito bem em inglês. Me irrita quando olho para nosso menu - às vezes mudo para outras línguas para testes - três quartos dele foi traduzido para alemão ou francês, e há coisas - quatro ou cinco coisas - que obviamente não foram. Isso para mim é irritante e eu gostaria de ser feito melhor. Há alguns sites automatizados que o ajudam a fazer traduções, e as pessoas me indicaram que você simplesmente colocou seu código lá, e as pessoas vêm e o traduzem de graça. Eu gostaria de preparar algo assim. Está na lista das coisas a fazer .....
Max... mas tens de equilibrar as tuas prioridades.
Simon: Exactamente. Mas penso que em termos do ambiente de trabalho Linux, o suporte à internacionalização, seria bom se fosse melhor. Nós, como empresa, não podemos sair e traduzir todas estas coisas. Nós contamos com os utilizadores para nos fornecerem traduções. E o mecanismo pelo qual os usuários podem fornecer traduções no momento é constrangedor - está fazendo pedidos no GitHub. Um número relativamente pequeno de pessoas é capaz de fazer isso, enquanto um número relativamente grande de pessoas é capaz de traduzir uma de nossas aplicações para um idioma diferente. Então isso é algo que eu gostaria que fizéssemos melhor no futuro.
Em geral, o desktop Linux que enviamos é muito bom, acho que estamos mais ou menos onde eu quero estar. Não há grandes mudanças que eu queira fazer nesta fase, acho que a maioria das coisas que eu olhei para cima no primeiro dia e [anotado como] ruim, [agora estão consertadas].
Max: Tens um sentimento de realização, ...
Simon: Uma das coisas que gosto de fazer é colocar um cartão com o Wheezy como era no primeiro dia, e um como o temos agora - e - é um computador diferente. E, sim, eu sinto-me muito orgulhoso disso. Em termos da minha carreira, o Desktop é o que mais me orgulho de ter trabalhado, porque 95 % dele é o meu próprio trabalho. Eu posso realmente olhar para ele e dizer: Eu fiz o trabalho de design, fiz o trabalho de implementação, escrevi o código, construí os pacotes. Eu trabalho com um colega, que faz muito da criação de imagens, e algumas das coisas subjacentes ao Linux, e trabalho com um designer gráfico que fez algum design de ícones. Mas eu meio que sinto, o Desktop é meu bebê, essa é a coisa que eu criei. E tenho muito orgulho disso - sinto que tenho [o direito] de estar - sinto que a experiência em usar um Pi é agora comparável a usar uma máquina Windows ou um Mac, e é onde nós queríamos estar.
Max: Isso é importante para tornar o Pi mais amigável e acessível, como uma plataforma para todos.
Simon: Exactamente. Eben sempre disse que queria que o Pi fosse um computador de propósito geral. E o Desktop é uma parte importante disso. Estamos agora no ponto em que o Ambiente de Trabalho não o vai impedir de ser um computador de propósito geral. E eu acho que o LXDE, há quatro anos atrás, isso teria constituído uma barreira à entrada para algumas pessoas. O Desktop é o que eu mais me orgulho de ter alcançado - e é um bom lugar para se estar.
Max: Como é que se consegue inspiração para o trabalho que se está a fazer? Sentimentos, ideias, ...
Simon: A inspiração vem principalmente de mim a olhar para algo e a ir: "Deus, isso é realmente irritante. Eu devo ser capaz de fazer melhor. Não é tanto inspiração positiva, é frustração com pedaços que não funcionam tão bem quanto eles poderiam fazer". Parece uma forma muito negativa de ver as coisas. Mas..: Eu sento-me e penso: "Oh Deus, é realmente a melhor maneira de fazer isso?" Depois sento-me e penso: "Eu podia fazer isto, eu podia fazer aquilo.
Não tenho tendência para ver como outras coisas fazem as coisas. Eu tendo a olhar - qual é a sequência mais curta de movimentos que posso fazer para chegar ao ponto onde eu quero estar? Qual é o menor número de coisas que eu quero fazer o usuário fazer, para alcançar o que ele quer fazer. E isso é o tipo de coisa que você quer fazer.
Max: Cortar, em vez de acrescentar ...
Simon: Sim, é tirar coisas em vez de adicionar passos. Muitos anos atrás eu fiz algum trabalho no design da interface de usuário do telefone. Na verdade, foi com a Microsoft. Trabalhei para uma empresa de P&D contratada, e estávamos trabalhando no primeiro videofone que ia ser lançado no mercado. Fui conhecer a equipe de design de interface gráfica da Microsoft em Seattle - foi em 1999, e a Microsoft não era considerada como sendo de ponta em termos de design de interface gráfica. Se você quer um exemplo de design ruim, você usa um dos da Microsoft, em vez dos da Apple que eram bons. Claro que eles são muito melhores hoje em dia. E eles tinham uma lista de diretrizes para o design de interfaces. Isso me deixou perplexo - porque eram tão boas diretrizes de como desenhar uma IU - e a Microsoft estava produzindo IU tão ruins. "Você tem essas diretrizes brilhantes, que diabos está errado entre essas diretrizes e o produto final?"
Mas uma das coisas mais importantes, que me ficou, e que continuo a manter hoje em dia, é que - deixem-me acertar - "oferecer as opções do utilizador não substitui a tomada de decisão certa à partida".
É uma coisa muito fácil de se dizer: "Bem, eu não sei se devemos fazer assim ou assim, então vamos colocar uma caixa e deixar o usuário escolher." Eu vi isso muitas vezes, na minha carreira anterior na UI design, quando eu trabalhava para contrato de P&D, sempre houve essa tendência, "oh bem, nós não sabemos o que o usuário vai querer fazer aqui, então vamos dar a eles a escolha. Vamos torná-lo personalizável aqui, para que eles possam fazer o que quiserem". O meu exemplo aqui é sempre o leitor de discos compactos. Quando os CD players saíram pela primeira vez, você podia programar quais faixas você queria tocar. Por exemplo, primeiro a faixa 1, depois a faixa 5 e depois a faixa 3, e depois a faixa 4. E todos fizeram isto durante os primeiros vinte minutos em que tiveram um leitor de CD. E eles nunca mais tocaram nele. Se você comprar um CD player [hoje] - nos últimos três a quatro CD players que possuo, você não pode mais programá-los, porque eles perceberam que ninguém queria fazer isso. Eles estavam dando aos usuários essa funcionalidade que um pequeno número de usuários já usou, mas ela estava lá para todos. É o mesmo tipo de coisa - se eu fizer isso de forma direta, não tenho que adiar essa decisão para os usuários porque não posso tomar a decisão. Um dos aspectos do design da IU que é importante é ter a coragem de ir: Acho que é assim que se faz. Eu acho que esta é a maneira que é melhor para todos. E tu nunca terás sempre razão. E você tem que aceitar que às vezes você terá um feedback tão ruim dos usuários que você pensa: OK, isso foi errado, eu deveria ter feito da outra maneira.
E aconteceu um par de vezes no Pi. Eu removi as configurações do relógio. "Você tirou as configurações do relógio!!!" "OK, vou colocá-los de volta." Está a tentar pôr-se na mentalidade, de OK, o que é que uma pessoa normal está a usar isto, para que é que realmente querem fazer, o que é que estão realmente a tentar alcançar, onde é que querem chegar. Como posso ajudá-los a chegar lá, sem lhes meter muitas decisões no caminho. Como você quer fazer isso? Você gostaria de fazer isso ou aquilo? Eles não querem saber desta coisa intermediária, eles querem estar aqui. E é assim que eles chegam lá. Como é que os levo lá o mais rápido possível? É mais ou menos a prioridade de que se trata - é sobre, vamos tomar a decisão certa para você, apenas em vez de fazer com que os usuários tomem a decisão eles mesmos. Parece um pouco ditatorial, é como "eu sei o que é melhor para você", mas por outro lado, é disso que se trata o design de usabilidade - é sobre ter um sentimento do que é melhor para as pessoas.
Max: Para que as coisas funcionem intuitivamente sem que o usuário tenha que investir muito tempo para aprender como a coisa funciona.
Simon: Sim. Para falar um pouco sobre a teoria do design de IU, existem vários livros de texto sobre design de IU, mas o melhor chama-se "A psicologia das coisas do dia-a-dia", que agora eu acho que foi renomeado. Se alguém quiser aprender desenho de interface, "A psicologia das coisas cotidianas" é o único livro que você precisa ler.
Max: Tem um bule com a pega errada na tampa?
Simon: É esse mesmo, é esse o livro. Uma das coisas que ele explica, é que no seu cérebro você faz um mapa de como algo funciona. E desde que o mapa mental combine com a coisa à sua frente, e eles se comportem da mesma maneira, então você pode intuitivamente usá-lo. E em alguns casos, é tão simples como um mapa real. Se eu for para a esquerda a partir daqui, quero ver o ecrã a mudar para a esquerda. Não quero pressionar o botão esquerdo, e ter o ecrã de repente a deslocar-se para cima. São coisas desse género. É fazer as coisas na tua mente funcionar como o computador, e fazer a coisa no computador funcionar como a coisa no mundo real. E se conseguires fazer isso, é assim que consegues que as coisas sejam intuitivas. É fazer com que as coisas funcionem, os usuários esperam que funcionem. E hoje em dia, os utilizadores compreendem o paradigma dos computadores. Eles entendem, eu movo um mouse para mover o cursor, eu aperto um botão. Não é preciso ensinar isso às pessoas, enquanto há trinta anos ninguém teria sabido nada disso. Essa parte está estabelecida, então não brinque com isso desnecessariamente, porque isso não ajuda. Apenas tente ser consistente. Se você tem um botão na janela, então faça com que pareça um botão. Aqui é onde eu acho que a Apple deu horrivelmente errado com um de seus últimos redesigns iOS, eles estão tentando fazer a tela parecer mais bonita, e no processo eles tiraram todos os botões. Então agora você só tem palavras. Agora todos aprenderam, que um botão parece uma palavra. Mas quando o fizeram pela primeira vez, as pessoas ficaram tipo: "Para onde foram todos os botões?". Você pode apreciar a simplicidade do design, porque eles parecem adoráveis, mas do ponto de vista da usabilidade, não foi uma grande idéia.
Max: Não há mais nenhuma pista de que estes são botões.
Simon: Exactamente. São coisas assim - se algo é um botão, faça-o parecer um botão. Não faça com que pareça outra coisa. Você faz o que as pessoas esperam. E é claro que podes fazer o oposto. Você faz coisas que as pessoas não esperam. E se você faz coisas que as pessoas não esperam, elas notam-nas. Por isso, se queres chamar a atenção de alguém para algo, faz algo que ele não esperava. O exemplo óbvio disso é trazer uma caixa de diálogo - você mudou o ecrã, eles terão de reparar nisso. É trabalhar com as expectativas do usuário quanto ao que vai acontecer e você pode usar isso para que ele se sinta confortável e familiarizado, ou pode usar isso para chamar a atenção dele para algo [você quer que ele seja capaz] de saber. A psicologia por detrás disso é bastante interessante. Eu acho que é aqui que muitos programadores Linux não pensam nesses termos.
Max: Acho que se trata principalmente de fazer algo que funcione.
Simon: Exactamente, sim. É quase que funciona com o mapa mental que eles têm. Mas o mapa mental que eles têm não está na mente dos utilizadores. Portanto, o facto de fazer sentido para eles, porque é assim que a base de dados por detrás dele funciona - esse é o tipo de problema. Gerir a base de dados é problema meu, eu preciso de o fazer. Os usuários não devem ter que se preocupar com isso. Preciso de apresentar a base de dados aos utilizadores de uma forma que faça sentido para o seu modelo de realidade, em vez do modelo de coisas que o computador tem dentro dela.
Max: Eu sei o que queres dizer, certo. Às vezes há aplicações em que se dão vários passos, um após o outro, mas elas colocam todos os passos em um diálogo. Você fica confuso.
Simon: Você encontra quando está desenvolvendo software, você começa jogando tudo na tela - eu preciso fazer essa coisa, eu preciso fazer [aquela] coisa, eu preciso fazer [aquela] coisa. Você atira tudo para o ecrã. E então o que você deve fazer é voltar e olhar para ele novamente, e dizer "OK, essa é a melhor maneira que eu posso fazer isso? Essa é a maneira mais fácil de fazer isso? Não, claro que não é - você não precisa usar isso, eu posso esconder esse botão porque ninguém precisa ver isso". E eu acho que com muito desenvolvimento do Linux eles chegam ao ponto em que está tudo na tela funcionando, e está feito. E eles não fazem o passo final - de, como é que eu polo isto para que pareça agradável para os utilizadores.
Max: É isso que as pessoas notam sobre o Linux - é mais rude.
Simon: Exactamente. Não fica com o polimento. E eu estou a fazer o polimento. É basicamente o meu trabalho - há algumas coisas que escrevi do zero. Mas, como eu disse antes, sem os autores do LXDE, eu não teria nada com que trabalhar, então todo o crédito pelo que eles fizeram, e o trabalho deles é fantástico. Mas alguns deles não tinham aquele 5 % de polimento. É o que é preciso para que isto passe de uma boa peça de software para uma grande experiência de utilizador.
Max: De acordo com o princípio de Pareto, estes 5 % levam 80 % do tempo ...
Simon: Pode demorar muito tempo, mas sim...
Max: Qual foi o feedback mais surpreendente que você já recebeu dos usuários?
Simon: Surpreendente feedback ... Eu acho que o que me surpreende é quando as pessoas são incrivelmente elogiosas. Eu acho que, porque de vez em quando alguém vai dizer algo como, você sabe - há alguns comentários no blog no momento sobre, como o Desktop [se tornou] fantástico, como ele se tornou um computador de verdade, este deveria ser o padrão para computação, ... é quando as pessoas dizem coisas assim, que me surpreende. Porque eu acho que o que estou fazendo é bom, mas no final das contas sou um cara sentado no escritório com um computador, que há quatro anos atrás nunca usou Linux.
Max: O que talvez seja uma vantagem.
Simon: Sim! Eu não aceitei que esteja tudo partido. Deve haver uma maneira de melhorar as coisas. E acho que esse tipo de feedback ainda é bastante surpreendente para mim. O feedback que não me surpreende é quando eu mudo alguma coisa e as pessoas vão: "Não, você não deveria ter feito isso". As pessoas são muito resistentes à mudança. E, às vezes, acho que isso é certo. Às vezes - mais uma vez é esta experiência de não saber como o Linux faz isto, mas eu vou dizer: "Na verdade não está certo o que estamos a fazer, devíamos fazê-lo assim, certamente." E então você descobre que todos se acostumaram à forma como o Linux o faz, e então mudá-lo, mesmo que seja melhor desta forma, não é a coisa certa a fazer.
Max: Há um preconceito quando você recebe feedback nos fóruns - é mais seus usuários comprometidos, não são crianças comuns.
Simon: Exactamente. Sempre que o feedback é muito positivo, tende a vir dos novos utilizadores, penso eu.
Já me chamaram coisas horríveis, não nos nossos fóruns. Quando realmente fizemos o lançamento do Pixel - quando o chamamos pela primeira vez de Pixel [o transcriber: o Raspbian Desktop], ele estava nos fóruns do Register (é um site de tecnologia). Os comentários sobre ele foram bastante sinceros. E um deles me tocou, brutalmente, em termos de tipo - acho que ele me chamou de meio bit.
Max: Meio bit?
Simon: Metade da inteligência é um termo bastante padrão de abuso, ele tornou-o mais calculista ao chamar-me meio bit. Ele explicou que "colocar um nome inteiro no que é um reskinning de LXDE estava exagerando meu papel". Tinha demorado este tempo todo para fazer este pouco". Sabes como é. Até certo ponto, eu posso ver o ponto dele - se você olhar de LXDE para Pixel, a funcionalidade fundamental era exatamente a mesma. Mas o que eu tinha feito, é que tinha aplicado o polimento. E o polimento faz uma grande diferença. Mas não para ele, porque - acho que ele fez o comentário, "O único propósito do desktop é ter algo para colocar nas janelas do seu terminal". Você realmente não é o meu mercado alvo, ele diz: "Por que você colocou uma grande barra de tarefas no topo? Isso está a ocupar algum do espaço em que eu poderia ter colocado janelas de terminal." Você realmente não é o meu mercado alvo aqui. Isto não é para ti. Se o que você quer é uma grande tela de janelas de terminal, há muitos outros lugares no mundo Linux que você pode conseguir isso, não venha aqui. Você não vai fazer todos felizes com o que você está fazendo. Mas é quando você vê o feedback de pessoas que realmente entendem claramente o que você está tentando fazer, e claramente apreciam [isso]. É quando você vê gratidão e um nível de compreensão do que você está fazendo. Contrastar com pessoas que claramente não entendem o que você está tentando fazer. Não entender quanto trabalho já foi feito em alguns casos. Porque você não está fazendo o que eles querem. São aquelas mensagens que se recebem quando as pessoas dizem: "Tornaste isto muito mais agradável de usar do que era antes. E todas as mudanças são positivas." É quando as recebemos, que sentimos que o que estamos a fazer vale a pena. E mais uma vez - eu não sou perfeito, eu cometo erros. As coisas saem com insectos, as coisas saem com decisões de usabilidade que podem não ser perfeitas. Mas estamos todos a tentar fazer disto um produto tão bom quanto pode ser. O Desktop é meu bebê, eu quero que ele seja tão bom quanto possível, é isso que eu vivo para fazer no momento, basicamente. É o trabalho mais gratificante que já tive em 25 anos de engenharia.
Max: Isso é realmente maravilhoso, estar num lugar onde você se sente feliz por fazer o que está fazendo.
Simon: Eu passei - antes de estar aqui, passei nove anos num emprego onde tinha de me arrastar da cama todas as manhãs para entrar, porque detestava o que estava a fazer. E aqui me levanto todas as manhãs entusiasmada em ir ao escritório para fazer o que vou fazer. Quase me esqueci que podias ter um trabalho como esse. Pensei que isso não acontecesse. Eu entro todas as manhãs e gosto do que faço. E acho que isso ajuda muito, porque me preocupo com o produto. Este produto é quase uma extensão de mim. Este é o sistema operacional que eu - mesmo em um nível puramente egoísta - é o sistema operacional que eu quero usar. Quando comecei em Pi, fiz todo o meu trabalho no Mac. Escrevi código no Mac, baixei-o para o Pi. Agora eu faço todo o meu trabalho no Pi. Eu uso meu Mac para e-mail e navegação na web, e é só isso. Eu uso Geany no Pi para todo o desenvolvimento de código, sento-me a escrever no meu Pi ...
Max: Você usa o Modelo 3 B+?
Simon: Oh sim, é o mais rápido. Mas sim, e de forma semelhante com a versão x86 - esse é o sistema operacional que Eben roda em seu Mac, e esse tipo de compra nele é muito legal.
Não é tanto uma coisa de feedback ... é quando eu vejo fotos ou vídeos de pessoas em África, e eles têm uma configuração de sala de aula com Pi's e todos estão rodando meu desktop. Vendo que a coisa que eu projetei está sendo usada em todos esses lugares, é incrível.
Nos meus primeiros dez anos de carreira em P&D com contrato, fiz muitos projetos de IU, mas tudo isso foi para produtos bastante especializados. Por isso, nunca se chegou a vê-los a serem usados no mundo real. Mas com isto... Eben vai à CNN ou a algum lugar, e eles tinham Pi's nos ecrãs na parede. Ele só gosta de tirar fotos de lugares onde já viu o ambiente de trabalho a ser usado. Ele trá-las de volta e diz: "Olha para isto, eles estão a usá-lo aqui".
Ainda é uma emoção vê-lo. Estou a sonhar que estas pessoas estão a usar a coisa que eu desenhei. É uma sensação incrível. Faz com que valha a pena, mesmo que eu não tenha gostado de o fazer - o que eu faço.
Max: Por falar na versão x86, quais são os planos para ela? Você está planejando fazer uma espécie de distribuição Linux alternativa para que todos possam usar?
Simon: Vamos continuar a fazer lançamentos x86 o máximo possível em sincronia com os lançamentos Raspbian. Mantendo os dois produtos tão similares quanto possível do ponto de vista do usuário. A principal diferença entre os dois é que existem algumas aplicações livres que temos no Pi, não podemos ter no x86. Não acho que seja uma questão de ter planos como tal para isso. Mais uma vez, as pessoas dizem que, no que lhes diz respeito, é o melhor desktop / a melhor distribuição Linux. Eu não pretendo assumir o Ubuntu ou o Debian ou o que quer que seja. É tentar tornar as coisas mais agradáveis, e se as pessoas também vão ter uma experiência mais agradável em seu laptop, então como no Pi deles, então isso é absolutamente fantástico. Nós pretendemos continuar a produzi-lo, agora é um processo bastante automatizado para produzir construções x86 ao lado das construções ARM, então sim, nós vamos continuar a colocá-lo lá fora. Sua intenção era habilitar pessoas com computadores antigos com menor potência - porque é baseado no Debian - sua intenção era fazer com que pessoas com computadores antigos com menor potência fossem capazes de usá-lo. Eu acho que é uma distribuição Linux bastante decente em seu próprio direito hoje em dia. Novamente, é Debian com a nossa pele em cima - não me entenda mal, não é todo o nosso trabalho, é principalmente Debian, com o polimento em cima dele.
Max: Você tem números, até onde se espalhou?
Simon: Nós provavelmente temos números de download para quantas cópias foram baixadas. Eu acho que em termos de usuários do desktop Pi é provavelmente 95 % Raspbian. Quanto às versões x86 - lançamo-lo como uma experiência. Foi quase uma brincadeira, porque eu e Eben estávamos sentados e conversando no escritório. Chegamos ao local onde estávamos bastante satisfeitos com a forma como o desktop estava indo. E ele foi: "Não seria óptimo, se eu conseguisse pôr isto no meu portátil? Eu gostaria de ter isto no meu portátil." E eu comecei a pensar nisto. Fui para casa, e num sábado estava aborrecido em casa. E pensei: "Será que podemos fazer isso? Deve haver uma versão do Debian para o LXDE, e eu fiz o download da versão do Debian para o LXDE. Eu então passei cerca de duas horas, tentando conseguir persistência para trabalhar nela. Tendo criado uma imagem que iniciaria no meu Mac em casa, com persistência baseada na imagem do LXDE. E eu consegui fazer isso funcionar, e pensei, vamos ver o que eu posso fazer. Acho que nessa noite eu já tinha o desktop Raspberry Pi rodando naquele pendrive. Eu o trouxe, Eben tinha estado em uma conferência no fim de semana e ele veio na segunda-feira, e eu disse a ele: "Dê uma olhadela nisto". Liguei a pen USB ao meu Mac, e inicializei-a no ambiente de trabalho. E ele foi: "Uau, tu conseguiste. Vais enviá-lo, então?" Eu disse: "Se achas que devemos."
Saiu literalmente de um comentário de Eben, e de eu estar entediado em casa, e pensar: como pode ser difícil, vou tentar. Acontece que não foi assim tão difícil.
Max: É realmente interessante que uma coisa tão importante - você vai pensar que vai levar muito tempo, mas não leva, mas outras coisas - como o qPDF ...
Simon: Sim, leva séculos. A única coisa que demorou tanto tempo na imagem x86 foi na verdade tentar conseguir uma que inicializasse no máximo de plataformas possível, porque temos muitos problemas com certos modelos de Mac. Tínhamos duas plataformas difíceis, que eram: o meu Mac mini em casa, e o MacBook do Eben's. E nós queríamos que funcionasse em ambas. O meu Mac no escritório, que era uma geração diferente de MacBook - tudo funcionava nele, todas as imagens iam arrancar nele. Mas levamos anos para tentar mexer com as coisas e imagens de baixo nível da BIOS Debian, e nós passamos algumas semanas brincando com isso. Muito disso eu fiz em casa nos fins de semana, tentando várias coisas em termos da criação da imagem do Debian. Para conseguir que ela inicializasse. Eventualmente nós encontramos uma maneira de criar uma imagem que iniciaria tanto no meu Mac em casa, quanto no Macbook do Eben. Esse é o que estamos enviando, porque ele funciona nos dois casos de referência. Eu acho que nós tivemos problemas porque o Debian realmente dividiu a imagem ao vivo e a imagem instalável - essas foram duas coisas diferentes. E a imagem instalável funcionou em muito mais plataformas do que a imagem live. Mas nós éramos na época baseados na imagem ao vivo. Então nós tínhamos como que juntar esses dois, para ter algo que fosse tanto instalável quanto inicializável no máximo de coisas possíveis. E essa era a parte difícil, em teoria nós não deveríamos ter que fazer isso - o Debian já deveria ter feito isso por nós. Mas, na verdade, colocar nosso desktop nele foi um processo relativamente rápido. O processo estava pronto e funcionando em um dia.
Max: Tens tudo dentro dele, como o feiticeiro também?
Simon: O que acabamos de lançar tem tudo nele - o assistente de inicialização, os aplicativos preferidos, a única diferença são como eu disse coisas como o Mathematica, que não podemos enviar. Tudo o resto deveria ser - cada mudança de GUI que fazemos para a versão ARM ...
Max: Isso também é automático. Uma coisa que eu queria lhe perguntar é sobre as atualizações de pacotes, porque isso é algo que alguns usuários não sabem como fazer. Existe algum plano para fazer atualizações automáticas de pacotes? Segurança especificamente.
Simon: Há uma actualização automática no feiticeiro. A primeira vez que você executar o assistente de inicialização, [Raspbian é atualizado], então você sabe que você tem o mais recente e melhor nesse ponto. Fazer atualizações automáticas é uma coisa difícil, porque para cada pessoa que não está atualizando seu sistema, porque eles não sabem que deveriam - e quem você provavelmente quer ajudar - você tem outro que não está atualizando seu sistema porque eles sabem que se eles atualizarem seu sistema este pacote aqui vai quebrar. E essa aplicação vai parar de funcionar. E é uma dessas áreas em que sou bastante cauteloso em fazer uma mudança, porque - mencionando a segurança: é como quando fizemos essas mudanças de segurança. O que eu vivo com medo é de quebrar coisas. Se alguém acha que o Pi deles funcionou ontem, e não funciona hoje, e é minha culpa que tenha mudado porque eles fizeram uma atualização - esse é o meu cenário de pesadelo. Algumas vezes, onde colocamos pacotes ruins no repo, que eu não tinha testado adequadamente - e isso acontece invariavelmente quando eu vou de férias. Eu vou de férias. E descubro, no segundo dia das minhas férias, que há relatórios de insectos a chegar - para um pacote que enviámos.
Max: Você realmente se senta e conserta esses insetos? Não consegues viver com a consciência pesada?
Simon: Eu tendo a estar em casa de qualquer maneira. Passei a primeira semana de vários feriados consertando bugs de casa, e tentando resolver o sistema, porque - sim, eu me sinto culpado por isso. Eu não gosto de partir coisas para as pessoas. Minha preocupação com as atualizações automáticas é que através de nenhuma falha nossa, em alguns casos, as coisas vão quebrar. Porque - todos os problemas de dependência do Debian, é muito fácil para um pacote ir para uma nova versão, e nós não temos o backport relevante para rodá-lo, e então aquele pacote que funcionou ontem agora não funciona hoje.
Eu não gostaria de o fazer automaticamente. Até eu ter a certeza de que não iria quebrar nada para ninguém, eu não iria querer fazê-lo automaticamente.
Max: E para coisas críticas de segurança?
Simon: Mesmo para coisas críticas de segurança. É uma decisão difícil. A Microsoft fez a actualização do seu Criador no Windows 10, sempre que foi - no ano passado? A minha Ethernet deixou de funcionar no meu PC Windows. Isso é indesculpável. A minha rede funcionava antes de eu fazer esta actualização, e agora não funciona. Como um usuário razoavelmente experiente em tecnologia, levei duas horas para ter meu computador [rodando novamente].
Max: Especialmente quando não se tem rede.
Simon: Exatamente, é muito difícil fazer um diagnóstico sem o conselho da Internet. Por isso, sou cauteloso. É uma das coisas que temos procurado [em] - alguma forma de ferramenta GUI para fazer atualizações. Na verdade, você pode fazer atualizações do sistema através da ferramenta de adição/remoção de programas existente. Olhando para o design dessa ferramenta, ela realmente roda isso como uma aplicação separada. Não há nenhuma razão pela qual eu não conseguiria fazer isso como uma aplicação separada. E talvez checar por atualizações no boot e coisas assim. Tudo isso é possível, e estamos chegando a um ponto em que este é o tipo de coisa que vamos começar a olhar.
Max: Na verdade, é algo que é muito bom no Linux comparado com o Windows. O seu computador não o obriga a fazer estas actualizações. Isso é algo que eu realmente odeio no Windows. E ele desliga - imagine fazer uma apresentação, e ele desliga. É aí que você tem que traçar a linha. Como discutimos antes de você ter que tomar decisões para os usuários, mas você não pode forçar o usuário a parar de trabalhar no computador quando ele não quer.
Simon: Sempre perturba os usuários se você quebra coisas para eles. Mesmo que você faça isso com as melhores intenções. Há também algumas aplicações iOS que eu escrevo - há uma aplicação para resolver palavras cruzadas. E de vez em quando eu empurro atualizações, e eu lembro que eu empurrei uma que quebrou em uma certa versão do iOS que eu não tinha testado. E você tem uma enxurrada de usuários que estão furiosos por estar quebrado, e você tem uma enxurrada de outros usuários que provavelmente são mais experientes em tecnologia, que vão "só para que você saiba que isso está quebrado". Eu passei uma semana no Natal a arranjar a minha aplicação iOS há uns anos atrás. Era a Apple que tinha partido coisas, não eu, mas eu tinha de encontrar uma solução para isso. Quase te sentes mais culpado pelos utilizadores que são simpáticos, que dizem "sim, eu compreendo que isto é difícil". - "Não, eu arranjo-te uma solução até amanhã!". - É sempre difícil. As actualizações são uma coisa complicada, e é muito fácil de partir coisas.
Uma das coisas que a Apple faz, que eu acho indesculpável, é - no iOS, eles baixam um Gbytes e meio de atualização de imagem, quando eu mudo do iOS 10 para o iOS 11. Eles fazem o download automático assim que você está conectado ao WiFi, em segundo plano, sem perguntar a você. Se você quiser usar um Gbytes e meio da minha largura de banda, você me pergunta primeiro. Isso é indesculpável. Eu realmente registrei um bug, e disse: isto é baixar dados de um tamanho enorme. Eles disseram: não - é uma atualização de segurança, você tem que tê-la, portanto temos que fazer de tudo para colocá-lo na plataforma. Eu disse: não, não tem, as pessoas têm de pagar pelos seus dados. Há pessoas que têm um limite mensal de dados. Têm cinco iPhones em casa, todos a descarregar. São coisas assim - tem de se conseguir um equilíbrio sensato. Neste momento, não fazemos coisas em termos de forçar actualizações, ou mesmo aconselhar actualizações. Provavelmente seria bom se o fizéssemos, mas ainda não tomei uma nova decisão sobre o que faremos em relação a isso.
Max: Já pensou mesmo em ter uma espécie de área de notificação?
Simon: Nós temos coisas de notificação. O material de notificação do LXDE não é ótimo na verdade, ele coloca janelas no canto da tela. Mas sempre que temos uma aplicação que usa isso, eu tendo a reescrever a aplicação, porque elas não parecem boas. Mas certamente é possível executar algo na inicialização, para ver se há alguma atualização, e colocar uma caixa de diálogo na tela. Há coisas que poderíamos fazer, mas provavelmente é numa área que vamos começar a ver, só porque chegamos ao fundo das coisas mais óbvias a fazer.
Max: Quais são as coisas que facilitam o seu desenvolvimento, e o que o torna mais difícil? O tipo de ferramentas que você usa.
Simon: Geany é óptimo. Como eu disse, eu faço a maior parte do meu desenvolvimento no Pi, hoje em dia.
Max: Também faz insinuação de código?
Simon: Sim. A Geany faz praticamente tudo. Coisas como a forma como tira nomes de funções para você, e facilmente permite que você encontre coisas como essa é realmente bom. Agora sinto falta disso quando uso outros editores, na verdade. [Outras ferramentas que eu uso:] Glade - que é a ferramenta para o design de janelas GTK. Eu uso muito isso, embora eu tenha tido que construir a versão antiga a partir do código fonte, porque eles agora só suportam a nova versão que só suporta o GTK 3, "não, eu quero a versão antiga, por favor, porque eu posso desenvolver para o GTK 2 com a versão antiga"!
Há um par de ferramentas que são úteis para o meu trabalho. Há uma ferramenta chamada "A Widget Factory". AWF. Isso é basicamente apenas uma tela com todos os widgets GTK nela. E eu tenho duas versões dele, uma GTK 3 one e uma GTK 2 version. Então eu tento manter o meu tema em sincronia entre os dois, eu os uso. É uma maneira muito boa de ver - eles não parecem iguais.
Max: Você tem dois Pi's ao lado um do outro, um executando o GTK ...
Simon: Não, porque eu posso executar essa aplicação em dois ou três modos, então eu só tenho duas janelas no ecrã. Meu objetivo com o tema é fazer com que as janelas pareçam iguais. Então você pode fazer isso na mesma plataforma. Isso é bastante útil. O Git e o GitHub são maravilhosos. Eu ficaria completamente preso sem o GitHub. Eu acho que o GitHub é óptimo.
Max: Documentação interna, você faz isso em linha com a fonte?
Simon: Principalmente sim. Eu só comento o código. Eu não faço uma grande quantidade de documentação externa. Temos pessoas a trabalhar na documentação independentemente de mim. A minha intenção é escrever coisas que sejam óbvias o suficiente para que elas possam trabalhar sem que eu lhes diga como fazê-lo. Eu tento usar nomes de variáveis úteis, nomes de funções úteis, comentários onde não é óbvio, o que o código está fazendo, principalmente como notas para mim tanto quanto qualquer outra coisa.
Outras coisas que são úteis - uma das coisas que me frustra é que o Linux não tem uma ferramenta de diff realmente boa, em termos de uma boa ferramenta gráfica de diff. A que eu uso é a meld, que é a melhor que encontrei, mas não é tão boa como coisas como "Beyond Compare" no PC, que é realmente boa. Eu me encontrei movendo o código Pi para o Mac, para que eu possa usar a ferramenta de diff no Xcode dele. Há algumas funções do Xcode que eu uso muito. Acho que é a maioria das ferramentas que uso para desenvolvimento, coisas que uso no dia-a-dia. Provavelmente é sobre isso, eu acho. E em termos de coisas que tornam a vida fácil - código bem estruturado é sempre bom. Eu sempre tento escrever código do ponto de vista de que posso ter que voltar e fazer algo mais com ele. Fazê-lo bem da primeira vez ajuda sempre.
Max: Conhece esta teoria dos dois sistemas, quando se constrói o primeiro sistema é melhor deitá-lo fora?
Simon: Sim. Eu já fiz isso no passado. Especialmente quando se tem menos experiência. É uma das coisas que encontro agora, quando volto e olho para algumas aplicações que escrevi no primeiro ano, para o Pi, volto e digo "oh, por que fiz isso? Oh, isso foi mau." Se as encontro, arranjo-as hoje em dia. Talvez descubra, que daqui a quatro anos eu olhe para trás para as coisas que estou escrevendo agora, [vou sentir o mesmo]. Todo o desenvolvimento de software é um processo de aprendizagem. Você fica melhor à medida que se dá bem, você fica melhor quanto mais você faz. Quanto mais você entende sua arte.
GTK é uma das coisas, quanto mais você aprende as pequenas bíblias dele, mais você o usa, melhor você pode fazer com que ele se comporte. O próprio GTK é uma ferramenta muito útil. Como um designer de interface é muito útil ter restrições. O GTK é ótimo desse ponto de vista. Qualquer kit de ferramentas de IU é ótimo - eu não tenho uma tela vazia e tenho que decidir como esta janela vai ficar. Eu sei como esta janela vai ficar, porque vai ficar igual a todas as outras janelas. Eu sei como os botões vão ficar, porque eles vão ficar parecidos com todos os outros botões.
Max: Então você se concentra na aplicação em si?
Simon: Sim. Em vez do penso de janela. É bom, que seja separado. Porque todas as coisas que eu posso fazer no tema. Se eu quiser fazer todas as minhas aplicações parecerem mais bonitas, posso mudar o tema. Se eu quiser que a aplicação funcione melhor, não tenho de me preocupar em torná-la mais bonita.
Max: Como usuário, prefiro que as aplicações sejam previsíveis, que tenham a mesma aparência. Você conhece o WinAMP? Não se parece com uma aplicação Windows.
Simon: Oh sim, não parece uma aplicação do Windows. Aquelas pequenas... Sim. E nós temos alguns desenvolvedores que escreveram aplicativos para nós, que querem fazer a sua própria coisa que parece diferente de tudo o resto. E [eu vou sempre que eles fazem isso]: "Não o faças". Eu entendo o desejo de fazer isso. Eu entendo o desejo de fazer com que a coisa pareça, "isto é meu". É branding, é a mesma forma que estamos a branding do ambiente de trabalho. Mas muitas vezes não é útil para os usuários. Tanto quanto qualquer coisa que seja o meu argumento, porque você quer o ambiente consistente. E alguém que quer fazer a sua própria coisa não está a ser útil em termos de criar consistência.
Max: Acho que essa é realmente a ideia por detrás disso, não é, que você quer colocar o seu próprio nome nele.
Simon: Sim, exactamente. Um par de outros que produzem coisas para o Pi fazem isso. Tudo bem, eu tento dissuadi-los de fazer isso, mas no final das contas, se eles se desenvolverem para nós, eu não posso dizer "não, você deve fazer isso!"
Max: "O décimo mandamento."
Simon: Exactamente.
Max: O que o inspira a desenvolver?
Simon: O que me inspira? Torná-lo melhor. Isto é tão bom quanto pode ser? E se não, como posso torná-lo melhor? É fazer com que a experiência do usuário seja uma que eu aprecio como usuário. Eu quero sentar-me ali e achar isto uma experiência agradável para mim. Se é uma experiência agradável para mim, espero que seja uma experiência agradável para outras pessoas. É isso que o design é. Se você falar com qualquer designer industrial, o design está tornando as coisas melhores para as pessoas.
Max: Trata-se de remover a fricção. Lembro-me deste exemplo com o frigorífico no livro "O design das coisas do dia-a-dia" onde o utilizador pensaria, há dois botões ou algo assim, um é para o compartimento do congelador profundo e o outro é para o normal. E na verdade era algum tipo de mistura estranha ... Ou como estas torneiras na Grã-Bretanha - diz "cuidado, água extremamente quente". Mas o que é suposto fazeres?
Simon: Interruptores de luz que não funcionam da mesma maneira. Coisas assim. Acho que vi um documentário com Seymourpowell, os designers industriais em Londres. Eles disseram: um designer quer tornar as coisas melhores.
Max: O que o inspirou a entrar na UI design?
Simon: Foi há muitos anos. Eu estudei engenharia na universidade. E especializei-me em software. Mas eu sempre apreciei um bom design. [Por exemplo] Eu tinha uma câmera Canon, e era tão gratificante de usar, porque tudo tinha sido bem feito. E eu não fumava. Eu nunca fumei. Mas eu tinha um isqueiro Zippo, porque era uma coisa tão adorável. Passei o meu tempo a pensar - não tenho nenhum talento artístico. Não sei desenhar, não sei pintar, não sei desenhar coisas. Não sei como se fazem coisas lindas como essas. Mas eu realmente desejava poder. Como posso combinar o meu desejo de criar coisas bonitas com fazer software? E o lugar lógico que esses conheci foi o design da interface do usuário. Eu entrevistei a Cambridge Consultants, minha primeira empregadora. Eles me mostraram - porque eles estavam apenas começando no design da interface do usuário na época, e desenvolveram tecnologias para simulação da interface do usuário. Então eles foram capazes de me mostrar que tinham projetado um hifi, e tinham uma tela que se parecia com este hifi. E você podia clicar nos botões da tela e tudo respondia. E você podia desenvolver toda a interface de usuário neste mundo virtual. Eu vi esta demonstração e disse: "Quero vir trabalhar para você e fazer isso". Acho que foi por isso que consegui o trabalho, porque estava tão enamorado com o que eles fizeram. Isso é o que eu quero fazer. Podia ver uma maneira de poder realmente - se pudesse fazer isso, ficaria feliz. Porque isso significa que posso fazer coisas bonitas, mas não tenho que ser capaz de desenhar, colorir e desenhar. Eu posso fazer coisas bonitas como essa. E foi daí, penso eu, que tudo surgiu para mim.
Max: Então é provavelmente como os engenheiros de hardware que vêm a Raspberry Pi...
Simon: Sempre fiquei muito frustrado quando olhei para os designers industriais, e desejava muito poder fazer o que eles faziam. Mas como eu digo que você precisa ter talentos, que eu não tenho para isso.
Max: Design de produtos como caixas, etc.?
Simon: Exactamente. Quando trabalhei na Cambridge Consultants, acabei por mudar de um grupo de software para um grupo de design industrial. Porque eu queria ser pensado como designer e não como engenheiro naquele momento. Lembro-me disso como uma mudança muito impopular com o meu chefe em engenharia de software. Ele disse: "Você está cometendo um grande erro. Nunca te vais safar com isso." E eu disse: "Isto é o que sinto que tenho de fazer." Eu era um engenheiro de software que trabalhava muito de perto com designers industriais, e trabalhei no design da interface com eles. Achei muito estimulante estar em um escritório com pessoas que estavam fazendo todas essas coisas que eu desejava poder fazer, que estavam fazendo o design do caso, o design da aparência, a disposição dos gráficos, e esse tipo de coisas. E foi a próxima coisa melhor que pude fazer foi trabalhar com eles e contribuir para o produto que estavam criando. E foi daí que surgiu a minha inspiração para o design da IM. Era querer fazer algo que eu não conseguia fazer e encontrar a próxima melhor coisa, que era o design de interface gráfica em software.
Max: Quais são algumas das características ou mudanças que você pessoalmente gostaria de ver em Raspbian, coisas que você ainda não fez, que nós não discutimos. Talvez coisas que estão realmente lá fora, que são realmente muito difíceis de fazer?
Simon: Para ser honesto, comecei no primeiro dia, fiz uma lista de todas as coisas que queria fazer. E acho que agora cheguei ao fundo da lista de coisas que eu queria fazer.
Max: É melhor fazer uma nova lista.
Simon: Acho que preciso de fazer uma nova lista. Ainda não tenho a certeza do que vai estar nessa lista. É uma pergunta difícil de responder. Se me tivesse perguntado isso há um ano, ou há dois ou três anos, eu teria tido uma ideia muito mais clara de qual era a resposta. Eu agora cheguei ao fundo da minha lista de coisas originais. Há uma tarefa de manutenção constante com todas estas coisas. A cada dois anos, nós vamos ter que suportar uma nova versão do Debian.
Max: Espero que a equipa possa crescer.
Simon: Em algumas das maneiras não quero - porque eu gosto.
Max: Gosta mesmo de brincar com o GTK 3 para o fazer comportar-se?
Simon: Eu sento-me e juro e amaldiçoo-o, mas não deixaria mais ninguém fazê-lo, porque...
Max... porque o bebé é teu.
Simon... porque é o meu bebé, e eu quero que esteja certo. Está associado a mim. Há pessoas que sabem que o Simon Long desenha GUI para o Raspberry Pi. Não é uma questão de não confiar em mais ninguém para o fazer. É uma questão de - eu passei tanto tempo aprendendo as complexidades disso, que é quase que sou a melhor pessoa para fazê-lo de qualquer maneira.
Fui gerente durante nove anos no meu emprego anterior, e detestei isso.
Max: Gostaste mesmo de fazer as tarefas em vez de as delegar?
Simon: Eu gostei de o fazer. O meu pesadelo é que o Eben aparece e diz: "Ah Simon, nós temos pessoal para fazer as coisas. Vais sentar-te lá em cima e tomar decisões." E eu iria: "Não, não me tires isso." Porque eu gosto de ter as minhas mãos no código. E eu realmente não gostaria que me tirassem isso. De certa forma, fico feliz por continuar a fazer isto, porque acho-o gratificante. Acho gratificante [poder dizer]: "Olha, eu fiz isso." Como gerente, nunca senti que pudesse dizer: "Eu fiz isso." - O meu povo fê-lo, eu não o fiz. Enquanto que agora eu sento-me e digo: "Fui eu."
Max: Uma pergunta mais técnica: o que vamos ganhar com o motorista OpenGL? Vantagens / desvantagens?
Simon: Basicamente, dará uma animação mais rápida e suave em qualquer coisa que use OpenGL. Aplicações OpenGL, obviamente. A intenção, eu acho, é que tudo será efetivamente renderizado pelo OpenGL, o desktop, etc. passará por ele, o que significa que você terá os benefícios da aceleração do hardware em tudo isso. Então, em teoria, será uma experiência mais rápida e mais suave para todos. Eu acho que não há nenhuma vantagem além disso.
Max: Entendo isto correctamente, precisa mesmo de fazer ajustes no ambiente de trabalho? Ou irá beneficiar automaticamente com isso?
Simon: Sim. Mas por quanto - não é uma área em que eu seja um especialista técnico de todo. A OpenGL é uma dessas artes negras. Meu entendimento é que está basicamente tentando obter melhor aceleração de hardware sob o sistema, para tudo o que vai na tela.
Max: Então, por exemplo, o Pi 1 terá um melhor desempenho, idealmente?
Simon: Potencialmente sim, embora mais uma vez, um dos problemas que eu acho que com o driver OpenGL é a quantidade de memória que ele usa. Portanto, podemos ter problemas com o Pi 1. Acho que já lidamos amplamente com isso, mas - as melhorias óbvias serão em coisas como jogos OpenGL. É óbvio que todos eles vão directamente para o hardware. Você deveria ver uma melhoria geral no desempenho geral do vídeo.
Max: Wayland, Weston. Completamente abandonado?
Simon: Está em grande parte na prateleira, sim. Acho que não está completamente abandonada. Pode vir a entrar na sua própria prateleira em algum momento. Mas, por enquanto, não fazemos nenhum trabalho de desenvolvimento activo nele há uns anos.
Max: Qual é a tua maneira preferida de passar o tempo num Pi?
Simon: (risos) Sou aborrecido, gosto de programar para melhorar as coisas, tenho de dizer. Vou muitas vezes para casa à noite e se houver um problema técnico que eu não tenha conseguido resolver, penso eu, isso será interessante. Muitas vezes eu vou baixar o código do GitHub e hackeá-lo no meu Pi em casa.
Max: Só porque não consegues resistir?
Simon: Sim. Quero melhorar as coisas, não posso deixá-las em paz. Se estou a usar um computador para pura recreação - eu não uso um Pi. Eu uso um Pi como plataforma de desenvolvimento, mas eu gosto muito do desenvolvimento [tanto]. Eu não uso Pis para coisas como navegação web, porque mesmo com Chromium, a experiência é muito melhor em uma máquina Windows ou Mac, porque a navegação web requer muito poder de cavalo. Mas a coisa para a qual uso o meu Pi em termos de diversão é a mesma coisa que faço no trabalho.
Max: É mais como umas férias, quando se está no trabalho.
Simon: O meu parceiro em casa sabe que se eu estiver sentado lá em cima no meu escritório, provavelmente estou a escrever coisas para o Pi. Isso é o que eu gosto de fazer.
Max: Conheci o Martin no evento Raspberry Pi fields, e ele falou-me da nova ajuda. Você está planejando liberar ajuda para a nova edição, que será enviada com o Raspbian.
Simon: Martin fez um grande trabalho em termos de arrumar os nossos recursos web. As suas páginas web são muito boas. E, falando sério, você deveria dar uma olhada nos links do menu, porque ele tem feito muito trabalho neles, e eu acho que são ótimos. E sim - a intenção é que nós vamos levar isso para fora de alguma forma, quer sejam páginas web estáticas que estão no Pi, ou que o façamos como uma aplicação Electron, embora as aplicações Electron não sejam terrivelmente eficientes em termos de espaço, porque você acaba com todo o navegador Chromium embutido em cada uma delas. Nós já temos um no sistema para o Scratch 2.
Seus recursos de ajuda são ótimos, e sim tê-los disponíveis offline é uma coisa muito boa de se fazer, então nós faremos isso em algum momento no futuro.
Max: Ainda não há planos concretos.
Simon: Ainda não.
Max: Isso seria obviamente uma coisa em que você poderia puxar atualizações. A ajuda fica melhor...
Simon: Mais uma vez, essa é uma das vantagens de ter ajuda que não está na plataforma, uma vez que se actualiza automaticamente - por isso tem uma decisão a tomar lá.
Uma das coisas que eu fiz com as aplicações recomendadas - que na verdade se atualiza a si mesma sempre que roda. Por isso agora fiz uma aplicação que se atualiza automaticamente no início. Porque eu queria ter certeza que as pessoas sempre tivessem a mais recente e maior lista de aplicações recomendadas. Por isso, agora provei o conceito de que é possível fazer uma aplicação que a primeira coisa que ela faz é se atualizar. Com a ajuda que podíamos fazer algo semelhante.
Max: Talvez se você der aos usuários um botão de "desfazer". Algo se parte para eles, eles podem recuar. O problema obviamente é descobrir qual coisa quebrou o sistema.
Simon: O que não é assim tão fácil. Você deve ser capaz de fazer isso através do apt. E infelizmente com o apt nem sempre é fácil desfazê-lo.
Max: Uma coisa que faço é actualizar os pacotes, porque confio na Fundação Raspberry Pi para fazer a coisa certa. Na verdade, não me preocupo que algumas coisas possam quebrar.
Simon: Tentamos fazer a coisa certa, mas como eu digo, não somos infalíveis. Então de vez em quando empurramos coisas que não deveriam ter sido a coisa certa. Mas tentamos manter isso no mínimo.
Max: Com as questões de corrupção SD, eu estava a pensar que há muito abate de árvores em Raspbian...
Simon: Em termos de corrupção SD, uma das coisas que consideramos fazer, o que podemos fazer no futuro, é o que fazemos com a imagem x86. O que é efetivamente enviar uma imagem fixa com uma partição persistente em cima dela. Nesse caso, você pode sempre voltar a um bom estado. Essa é uma das coisas que considerámos fazer. Você tem uma partição base, e então você aplica persistência em cima dela.
Max: Basicamente, uma sobreposição.
Simon: Exactamente. Isso é algo que pensámos em fazer. Eu não tenho tempo [para fazer], mas provavelmente é o caminho a seguir no futuro.
Max: Uma das primeiras coisas que realmente vi quando cheguei ao Reino Unido foi um vaivém - quando se sai do aeroporto de Stansted, eles têm um vaivém, que vai para o terminal. E havia um Raspbian [congelado durante o início].
Simon: Acontece mesmo. Nós nos acostumamos muito em exposições. E a capacidade de recuperar de algo assim é obviamente uma coisa boa. Mas sim, os cartões SD não são uma tecnologia perfeita. Coisas para tornar isso mais robusto é bom. Suspeito que vamos passar para um sistema de ficheiros sobrepostos em cima de uma partição base. O que pelo menos significa que você pode voltar para algo que você sabe que funciona, se não necessariamente com todo o seu [existente] trabalho nele.
Max: Você tem algum plano para usuários industriais que não tocam no sistema, para uma imagem somente leitura?
Simon: As pessoas têm olhado para imagens só de leitura. Nós não olhamos internamente - é discutido ocasionalmente, mas nós não fizemos nenhum trabalho sobre isso. É certamente viável fazê-lo.
Max: A última pergunta que tenho é sobre os binários ARMv6, e os binários ARMv7. Basicamente, o que você faz é apoiar todos os Raspberry Pi's.
Simon: Não queremos órfãos que compraram Pi 1 - porque por definição podem estar com orçamentos limitados. São apenas 35 $ para um novo Pi, mas eles podem não ter 35 $. Por isso, tentamos apoiar todas as plataformas antigas sempre que possível. O único lugar onde não suportamos neste momento é o Flash Player. O Flash Player só está disponível como um binário ARMv7, isso é tudo o que a Adobe fornece. Portanto, há muito pouco que podemos fazer quanto a isso. Nós não queremos conscientemente tornar órfãs as velhas plataformas com novas versões de software.
Max: A razão pela qual estou a perguntar é sobre o desempenho. Obviamente os binários ARMv6 não utilizam todas as funcionalidades que os binários ARMv7 utilizariam.
Simon: Em alguns casos, temos bibliotecas híbridas, algumas das nossas bibliotecas de acesso à memória, por exemplo. Elas procuram ver se estão rodando em um ARM 6 ou um ARM 7 e rodam códigos diferentes de acordo. O que é algo que podemos considerar fazer.
Max: O kernel também é otimizado ... bibliotecas centrais [onde o maior impacto aconteceria]
Simon: Sim. Isto são coisas como cópias de memória, comparação de memória. Coisas que são gerais do sistema, estas são optimizadas para várias plataformas. É uma coisa complicada para começar a trabalhar. Mas funciona mesmo. Provavelmente não o faríamos por tudo - mas quando encontramos lugares onde podemos ter uma vantagem. Provavelmente não otimizaríamos uma aplicação individual. Mas se conseguirmos optimizar para múltiplas aplicações - e temos um tipo que é muito bom nisto - a respirar em bits de código de baixo nível para esse fim. Temos um programa contínuo de olhar para coisas em que podemos obter uma vantagem de desempenho através da optimização.
Max: Então, essencialmente, o que acontece, comparado com outras plataformas, onde basicamente é mais sobre hardware barato, com o Raspberry Pi você tem um computador que fica melhor o tempo todo, porque o software cresce melhor o tempo todo.
Simon: Esperamos que sim, sim.
Max: Alguma coisa que você gostaria de mencionar, alguma coisa legal, idéias?
Simon: Acho que cobrimos a maioria das coisas que estão a flutuar na minha cabeça neste momento, por isso acho que é óptimo.
Max: Obrigado por teres tido tempo.
Simon: Não há problema nenhum, é um prazer voltar a vê-lo.