Mostrando postagens com marcador entrevista. Mostrar todas as postagens
Mostrando postagens com marcador entrevista. Mostrar todas as postagens

Entrevista com Gavin Howard - O autor da linguagem bc do toybox

 

Entrevista com Gavin Howard - O autor da linguagem bc do toybox

    Recentemente eu postei em meu blog sobre o lançamento do bc 5.0 desenvolvido por Gavin Howard. Eu venho acompanhando o bc do Gavin desde de Noembro de 2018 quando foi anunciado que iria desenvolver um patch para o toybox. Também postei nom eu Instagram que estava testando a linguagem bc do Gavi mesmo que estava como pendente no  Toybox e desde então boas coisas vem aconcentendo. Uma delas é que eu conheci o próprio Gavin Howard que nos concedeu essa incrível entrevista. Espero que gostem :)


Gabriel: Antes muito obrigado por aceitar meu convite para essa entrevista.

Gavin: Muito obrigado! Muitas pessoas não ligam para a bc, então é legal que alguém ligue pelo menos uma vez. :)

Gabriel: Poderia nos contar um pouco sobre você? (Vida pessoal e profissional)

Gavin: Me formei na universidade há alguns anos em ciências da computação. Desde então, eu venho trabalhando em projetos pessoais enquanto lutava para conseguir e não conseguia manter um emprego. Minha esposa é a provedora. Tenho certeza que falhei em mantes empregos por causa de habilidades sociais, então eu sugeriria ao seu publico que eles desenvolvam essas habilidades cedo, mesmo que seja difícil.

    Desde meu emprego antigo, eu venho trabalhando na bc e em outro software, mas eu vou falar sobre esse software depois.


Gabriel: Por que decidiu desenvolver a bc?

Gavin: Só aconteceu, de verdade. Eu estava desempregado, alguém me pediu para construir um analisador para bc porque queria fazer a biblioteca matemática. Eu decidi fazer isso para experiencia de currículo.

    Bom, uma vez que eu desenvolvi o analisador, ele ainda não havia concluído, então eu decidi mergulhar e eu mesmo escrever a matemática. A essa altura, eu tinha um bc totalmente funcional. Levei coisa de um mês.

    E desde então eu venho a aperfeiçoando. Já fazem três anos e meio desde que eu concluí a implementação original. 


Gabriel: Quais são as principais diferenças entre o GNU bc e seu bc?

Gavin: Você mencionou que meu bc não possui alguns bugs que o GNU bc possui. Eu gostaria de explicar isso.

    bc é um programa que é padronizado pela POSIX. POSIX é um conjunto de padrões para sistemas operacionais que a maioria segue, incluindo Linux e Mac OSX (até certo ponto). POSIX não possui padrões somente para o sistema operacional; alguns padrões são para as ferramentas que o sistema operacional deve possuir agregadas a si. Entre estas estão o comando `ls`, o comando `mkdir`, o comando `ln` e o comando `bc`.

    O padrão bc define o que o bc tem que fazer e como deve se comportar. Se você escrever os seus scripts bc para seguir exatamente esse padrão, você pode muito bem contar com seu script executando em qualquer bc.

    O bug do GNU bc geralmente tem a ver com desvios do padrão bc. O meu bc não se desvia desse padrão de forma alguma, exceto por extensões que podem ser desabilitadas.

    Além disso, meu bc possui *muito* mais extensões que o GNU bc, que sim, possui algumas extensões. As extensões que meu bc possui e o GNU bc não inclui:
  1. Um gerador de número pseudo-aleatório semeado que gerará números de tamanhos arbitrários. Isso permite os usuários gerar números pseudo-aleatórios em Bash scripts.
  2. Um jeito de realizar entrada e saída de números em notações cientificas e de engenharia.
  3. Atribuir de strings a variáveis, passá-las para funções, e retorná-las das funções.
  4. Algumas funções extras builtin (abs()modexp()divmod()asciify() e etc).
  5. Alguns operadores extras para truncamento, extensão, e deslocamento decimal (não bitwise).
  6. Uma biblioteca matemática estendida com um monte (94, eu acho?) de extras funções uteis de matemáticas. (Uma função não é realmente útil exceto para a biblioteca em si).
  7. Uma flag de linha de comando para tornar mais fácil de cuidar de globals (ibaseobase, e scale).
Gabriel: Em uma conversa particular que tivemos, você me contou que seu bc foi adotado pela equipe do toybox para ajudar a construir o kernel Linux. Pode nos dar mais detalhes disso?

Gavin: No kernel Linux, há um header que precisa ser gerado durante a build. Esse header (include/generated/timeconst.h, veja https://github.com/torvalds/linux/blob/5bfc75d92efd494db37f5c4c173d3639d4772966/Kbuild#L16) possui as constantes para quantos milissegundos o kernel deve esperar antes de interromper um processo. Basicamente, esse header define o tamanho de fatias de tempo (https://en.wikipedia.org/wiki/Preemption_(computing)#Time_slice).

    Para gerar esse header, o kernel possui uma opção (CONFIG_HZ, encontrado em "Processor type and features" -> "Timer Frequency") que define o número de vezes por segundo que o kernel deve antecipar os processos. Essa frequencia precisa ser convertida numero de milissegundos por fatia. Originalmente, o script para fazer isso era em bc. Foi mudado para Perl por causa de bugs no GNU bc, mas retornaram depois que esses bugs podiam ser trabalhados ou corrigidos (veja https://github.com/torvalds/linux/commit/70730bca1331fc50c3caacaea00439de1325bd6e). O scritp é o kernel/time/timeconst.bc (https://github.com/torvalds/linux/blob/5bfc75d92/kernel/time/timeconst.bc).

    A razão que o bc é utilizado ao invés de Perl é porque bc é padrão POSIX, então o Linux pode esperar que ele exista no sistema, enquanto que Perl precisa ser explicitamente instalado. Dito isso, o script timeconst.bc  do Linux utiliza algumas extensões do GNU, que vence o propósito.

    Até aquele momento, o toybox não tinha o bc, e então, por si só, ele não era o suficiente para construir o kernel Linux, e devido o script Linux timeconst.bc utilizava extensões GNU, ele realmente precisava do GNU bc. Com essa adição do meu bc, que possui todas as extensões do  GNU bc, o toybox se tornou capas de construir o Linux sem quaisquer outras utilidades externas, um conquista memorável para o autor do toybox.

código bc dentro do Linux
código bc dentro do Linux


Gabriel: Na minha opinião pessoal, bc é um bom jeito de aprender a programas. Você concorda?

Gavin: Eu fortemente discordo, na verdade. A razão é proque há numerosas  armadilhas e ciladas que você pode cair quando escrever código bc (veja aqui https://git.yzena.com/gavin/bc/src/branch/master/manuals/development.md#lib-bc-1). Essas armadilhas incluem:
  1. Existem três variáveis globais (ibase, obase e scale) que controlam como o bc se comprota. Essas globais devem ser tratadas corretamente todo o tempo.
  2. As globais (ibase, obase e scale) devem ser salvas antes de ser modificadas em uma função, e devem ser restauradas antes de retornar de uma função.
  3. Se constantes são utilizadas, ibase deve ser explicitamente definida pela função (e restaurada antes de retornar) ou então as constantes serão implementadas da forma errada.
  4. Se a função exibir um número na saída, obase deve se explicitamente definida pela função (e restaurada antes de retornar) antes de exibir, ou o número será exibido de um jeito inesperado.
  5. Todas as variáveis  locais para a função devem estar em um auto statement no inicio da função, incluindo arrays. Se você não fizer isso, as variáveis ou arrays são presumidas ser globais e assim as versões globais serão utilizadas/modificadas. No entanto, "globais" nesse sentido *também* é errônea. Digamos que possui uma função que possui a variável `a` como uma variável local (ela aprece no auto statement). Se você chamar uma função que acessa uma "global" `a`, a `a` que ela acessa não a global verdadeira `a`, mas a versão de uma `a` na função que a chamou! Isso está no padrão, então eu não posso alterar isso, mas é algo a ser considerado.
  6. A ultima cilada é somente para código que quer ser portado para qualquer bc: você não pode utilizar *quaisquer* extensões.
    Essa ultima merece uma olhada mais de perto. O bc padrão POSIX é estrutura básica; ele não tem quase nada! Essas são algumas coisas que ele não possui:
  1. Nomes maiores do que um carácter.
  2. Clausulas `else` para `if` statements.
  3. A palavra-chave `continue` (apesar de possuir `break`).
  4. Um jeito fácil de exibir strings com caracteres escape (a palavra-chavet `print` no meu bc).
  5. Return statements *sem* parenteses.
  6. Você não pode comparar operadores fora `if` statements ou condinções loop.
  7. Você só pode somente utilizar *1* operador de comparação por `if` statement e loop, então nada de operadores `&&` ou `||`!
  8. Tecnicamente, parâmetros array são de alguma forma limitados também.
  9. Strings só podem ser exibidos e nada mais ser feito com ou a eles.
(Para tudo o que meu bc faz que bc padrão POSIX não, veja aqui see https://git.yzena.com/gavin/bc/src/branch/master/src/data.c#L265-L283).

    Dito isso, se você precisar escrever um script matemático em uma linguagem de números de precisão arbitrária, e Python não vai funcionar (Python possui suporte razoavelmente bom à matemática de precisão arbitrária), então bc pode ser o que você precisa.

    Além do mais, meu bc remove um monte dessas limitações. ela remove número 2 (se você utilizar a opção -g na linha de comando) e basicamente todas as limitações sob o número 6. O resto não pode ser eliminado porque eles não inerentes ao design do bc.

Gabriel: Como as pessoas podem contribuir para o seu projeto?

Gavin: Eu na verdade não recebo contribuições além de bug reports. Meu projeto atual está em https://git.yzena.com/Yzena/Yc, e eu explico minha politica em https://git.yzena.com/Yzena/Yc#open-source-not-open-contribution.

    A parte que *não* é escrita é que, Se eu mesmo escrever, eu posso garantir que o software está em tal alta qualidade que eu tenho vontade de assumir a responsabilidade por ele. Esse é o meu objetivo atual: Escrever software útil e aceitar responsabilidade por ele, por um preço. Eu acho que se eu não conseguir um emprego, eu posso gerar um emprego para mim ao vender software e aceitar responsabilidade por isso.

    (Mas mesmo se eu vender software, ele será open source! Eu só venderei proteção de responsabilidade, não o software em si).

    Dito isso, se você encontrar um bug no bc e concertá-lo, provavelmente eu ainda eu receba sua correção; eu nunca vou aceitar responsabilidade pelo bc. Você também é bem vindo em submeter bug reports para *todos* os meus programas.


Gabriel: Considerações finais?

Gavin: Atualmente estou escrevendo uma linguagem de programação, um build system e um VCS (Version Control System). Se qualquer pessoa do seu publico quiser me contatar com comentários ou perguntas sobre essas três coisas, ou sobre meu bc, eles são bem vindos. Eu vou tentar responder o mais rápido possível. Para encontrar meu endereço de e-mail, vá em https://gavinhoward.com/contact/.

Obrigado por me escutar!

Bate bola com os desenvolvedores do Atelier (pt01)

Atelier is an open source program that allows you to control your 3D printer.
Atelier is an open source program that allows you to control your 3D printer. 
Faz a pipoca e vem conferir esse bate papo bem bacana com os mantenedores do projeto Atelier (primeira parte).


--------------- VARTROY TECNOLOGIA ---------------

Soluções inovadoras com Linux, software livre e open source
- Consultoria - Terceirização de TI - Suporte e Manutenção - Desenvolvimento de sites - Tradução, revisão e versão - Interpretação
- Ribeirão Preto / SP

Live com o heitor Faria neste Sabado

Beleza cambada? este artigo é somente para lembrar a vocês de que este Sábado às 18:00 horas teremos mais uma live com o Heitor Faria, a autoridade do Bacula.

Para quem não conhece Bacula, esta é uma ferramenta que lhe permite realizar backups, verificação e  restauração dados de computadores em uma rede de sistemas mistos.

O Heitor já esteve conosco no canal participando de uma live no canal respondendo a perguntas e tirando duvidas dos inscritos sobre essa poderosa ferramenta de Backup. Foi simplesmente sensacional e caso não tenha assistido ainda, confira então o vídeo antes da live deste Sábado ;)


Então, fique atento e não fique fora desta live que será tudo no estilo quem sabe faz ao vivo :)

Resumo do Tux 13/05/2017

Beleza cambada? bora para mais um Resumo do Tux de Maio cheio de coisas.
Na segunda feira eu anunciei sobre o evento de colecionadores de jogos que acontecerá no dia 20 de maio e que é promovido pela loja Super Anos 80:


Teve também o lançamento do curso de Blender no EAD Diolinux e a dica do Flávio sobre o gerenciador de pacotes Homebrew para o Mac OS.

Terça feira, antes do vídeo oficial do canal, teve a entrevista com o Thiago Padilha (sim, o criador do Neovim) como um presente a todos vocês por terem despertado a minha curiosidade de saber mais sobre o projeto e ficou também como um presente de aniversário para o Ayr Müller que nos falou sobre o Zfs aqui no canal. Feliz aniversário mestre Ayr =)

Depois disso, no mesmo dia teve mais um capitulo da série Muito além do GNU e desta vez tratamos sobre o toybox que será o futuro substituto para o Busybox (já sendo no Android a partir da versão MarshMallow). Confiram o vídeo logo abaixo:


Na quinta feira teve mais um artigo cobrindo sobre o toybox, Musl e o ll-lvm/clang (que aparecerá aqui no canal também) para reduzir o tamanho do Linux no kernel space quando no user space e ser mais amplamente utilizado na IoT.

Sexta feira teve o vídeo sobre o pessoal da Super Anos 80 para promover mais fortemente ainda o evento que será muito legal.

NÃO SE ESQUEÇA DE SE INSCREVER NO MEU CURSO DE MIGRAÇÃO PARA LINUX.
 QUER APRENDER A UTILIZAR LINUX DE VERDADE, ENTÃO VENHA APRENDER COMIGO ;)

Lançado novo Minicurso de atributos no Linux

Entrevista com Thiago Padilha. Criador do Neovim

https://neovim.io/
https://neovim.io/

Neovim é um fork do Vim onde o Thiago adicionou recursos muito poderosos que faltavam no Vim e que todos almejavam. Com isso atraiu e formou para o Noevim uma forte comunidade de desenvolvedores e colabores ao redor do mundo.

Esse ano fizemos a série Vi vs Emacs em "Muito além do GNU". Essa entrevista é até mesmo um pedido do Ayr Müller, o mestre que explicou sobre o ZFS para nós o ano passado e fica como presente já hoje é aniversário dele. Feliz aniversário mestre Ayr, aqui está o seu presente =)
Toca Do Tux: Apesar de já ter lido no seu site oficial, poderia se apresentar para todos?
Tiago Padilha: Meu nome é Thiago Padilha, moro com minha esposa e um filho em Recife/PE e trabalho como programador remotamente

Toca Do Tux: Sabemos o que levou-o a criar o Neovim; mas antes disso, o que o levou a fazer contribuição para o Vim? era no caso um usuário assíduo?
Tiago Padilha: Sim, eu fui usuário de Vim por alguns anos antes de tentar fazer a contribuiçao que eventualmente me levou a começar o Neovim.

Toca Do Tux: O Neovim hoje conta com ajuda de muitas pessoas em torno do mundo. Como essa galera veio a conhecer e se tronar membros do Neovim (pode nos contar essa historia)? Inclusive o Ayr Müller pergunta: "Queria saber se o projeto está vinculado apenas a você ou se é uma equipe. Outra coisa é se o projeto está ainda ativo ou se parou."
Tiago Padilha: O projeto ganhou muito conhecimento quando dilvulguei no Hacker News, recebendo muitas "stars" no github e tambem um grande número de contribuições no Bountysource, atingindo a meta inicial de $10.000 em pouco mais de 24 horas.  Isso gerou muito interesse no projeto, o que fez com que recebesse muitos contribuidores na fase inicial. O projeto ainda está ativo, porém me afastei desde o começo de 2016 e deixei nas mãos de outro contribuidor, que ainda está gerenciando até hoje. Estou querendo voltar a fazer contribuições esse ano, porém não sei se vou arrumar tempo :)

Toca Do Tux: Sobre a licença, o que os levou a escolha da licença Apache?
Tiago Padilha: Na verdade não fui eu quem escolheu. Como o projeto ganhou muito momento inicial, resolvi focar em desenvolver o código e deixei essas questões mais burocráticas nas mãos do @justinmk, que ainda está levando o projeto.

Toca Do Tux: Você tem outros projetos alem do Neovim pelo o que eu vi no seu github como uma ferramenta relacionada ao zsh (que inclusive eu sou apaixonado pelo zsh). Poderia nos dizer algo sobre os outros projetos?
Tiago Padilha: A ferramenta que você fala é o zsh-autosuggestions, um plugin do zsh que desenvolvi faz tempo mas também acabei me afastando. O projeto agora está na organização zsh-users: https://github.com/zsh-users/zsh-autosuggestions. Tenho muitos projetos, não dá pra falar muito aqui :). Atualmente tenho feito algumas contribuições ao electron por conta do projeto em que trabalho atualmente(que usa o electron como framework): https://electron.atom.io.

Toca Do Tux: Contribuições: Como a galera pode contribuir? (todos os projetos.)
Tiago Padilha: Tem muitas maneiras de contribuir com o Neovim, recomendo ler o CONTRIBUTING.md: https://github.com/neovim/neovim/blob/master/CONTRIBUTING.md


Resumo do Tux 06/05/2017

Semana agitada galera; muita coisa aconteceu e foi até bom.

Terça: eu publiquei o artigo com o vídeo do do abaixo assinado para tornar o KDE o ambiente padrão do Ubuntu e teve também mais um vídeo da série Muito além do GNU onde encorajo a todos a desbravar o util Linux e não ficar acreditando que todos os comandos do terminal pertencem ao GNU (é um erro muito grande isso)




Sexta teve o artigo da comunidade Emmi convidando a todos a participar do projeto e a entrevista com o escritor e professor universitário Orlando da editora novatec:

Interview with Lizardcub and DotEmu: Creators of the game Wonderboy - Tha dragons trap


Hello guys and girls, ladies and gentlemen. Welcome to my blog. Today we're going to talk to a little with Lizardcube and DotEmu, the companies behind Wonderboy game (yes, we had the pleasure to talk to these two woderful companies =).



Wonderboy is a Master System game that was brought back to life to the days we're living in.
Soooo, here we go:

Can you tell us a little bit about Lizardcube and DotEmu? (Things like how it all started and so on).
Ben: We started Lizardcube after developing a prototype of the game. We knew then that the original creator and Dotemu would be on board .
It’s co-founded by Omar Cornut (technical director) and me, Ben Fiquet (art director).
We met with Omar in 2006 working on Soul Bubbles for Nintendo DS.
Cyrille (DotEmu): DotEmu was founded 10 years ago, with the willing of bringing back the best old school games to web browsers and mobile. With the time, the company evolved and we are now able to bring back any games from any platform to PC mobile and consoles, as a publisher and/or a developer. We kept our willing to bring back forgotten games, for the pleasure of original fans and to transmit the legacy of the pioneers to the younger generations.
Today we also work with talented people like Ben and Omar, to achieve this goal. Now we not only do adaptations but also remakes (Wonder Boy) and sequels (Pang Adventures)!
We are small team of passionate people located in Paris always in search of old gems to bring back.
What inspired Lizardcube and DotEmu to remaster Wonder Boy?
Ben: Well, it’s considered by many the best game of the Master System. It was one of the first metroidvania, open world kind of game and the gameplay generally speaking was very tight. It didn’t have the chance to shine like the Nintendo licenses because the master system was less popular but we’re very happy to be able to share it with today’s generation of gamers.
I also wanted to be able to craft it as i envisioned it as a kid. I’m really glad that there has been an overwhelming response concerning the art of the game.
Cyrille (DotEmu): Lizardcube inspired us actually! Omar and Ben came to us with the project in mind in 2015. They were so passionate about the original game, and their early prototype was already so beautiful, that we were motivated instantly do make it happen. It is really in line with our vision. Also, The Dragon’s Trap is really a great game. I personally did not know it before they showed it to me even if I had a SMS at the time :) But I really saw its potential as the mechanics and game design really hold well through the years.  

About Steam. Talking to you Lizardcube team, I asked if Wonder Boy was going to be release on Steam. And the answer was yes, but a little late. Which platforms? Windows, Mac OS and Linux?
Omar: We are aiming for June for the Windows Steam release. About Mac OS and Linux, we don’t yet know if there would be enough interest from players, but will investigate the possibility.

Plans for the future. You don't have to spoil it out, but more Master system games? (Please, tell us the answer is yes =)
Ben: It’s actually something we have to figure out. We need to relax a little and envision what the future might hold. Maybe another remake, maybe an original game, who knows….

Entrevista com Lizardcub e DotEmu: Criadoras do jogo Wonderboy - The dragons trap

Wonder Boy III: The Dragon's Trap
Wonder Boy III: The Dragon's Trap


Beleza cambada? Bati um papo com a galera da Lizardcube e DotEmu. A equipe inteira é muito gente boa e foram muito educados em responder as minhas perguntas e matou nossa curiosidade do como surgiu a ideia de trazer jogo do antigo Master System de volta a vida.

Wonder Boy III: The Dragon's Trap é um game que foi feito para o Sega Master System, lançado pela Sega em 1989, é a continuação direta de Wonder Boy in Monster Land:
se não conhece Wonderboy ainda, aqui está uma palinha:

Confiram então a entrevista e que terá a versão em inglês (justo já que a entrevista original foi em inglês):

Pode nos contar um pouco mais sobre a Lizardcube e a DotEmu? (Coisas do tipo como tudo começou e assim por diante).

Ben: Iniciamos a Lizardcube depois de desenvolver um protótipo do jogo. Sabíamos então que o criador original e a Dotemu estariam nessa.
Ela é co-fundada por Omar Cornut (diretor técnico) e eu, Ben Fiquet (diretor de arte).
Conhecemos Omar em 2.006 trabalhando em Soul Bubbles para o Nintendo DS.

Cyrille (DotEmu): DotEmu foi fundada 10 anos atrás, com a vontade de trazer de volta os melhores jogos old school aos navegadores e móveis. Com o tempo, a empresa envolvida e nós somo agora capazes de trazer de volta quaisquer jogos de quaisquer plataforma para PC, móveis e consoles, como um publicador e/ou um desenvolvedor. Mantivemos nossa vontade de trazer de volta jogos esquecidos, para o prazer de fãs originais e para transmitir o legado de pioneiros para as gerações mais novas.
hoje trabalhamos também com pessoas talentosas como Ben e Omar, para alcançar esse objetivo. Agora nós não fazemos somente adaptações, mas também remakes (Wonder Boy) e sequencias (Pang Adventures)!
Somos uma pequena equipe de apaixonados localizado em Paris sempre em busca de joias antigas para trazê-las de volta.
O que inspirou Lizardcube e DotEmu remasterizar Wonder Boy?

Ben: Bom, ele é considerado por muitos o melhor jogo do Master System. Esse foi um dos primeiros metroidvania, tipo de jogo open world e a gameplay geralmente falando era muito estreita. Ele não teve a chance de brilhar como as licenças da Nintendo porque o master system foi menos popular, mas estamos muito felizes de ser capazes de compartilhar isso com a geração de gamers de hoje.
Eu também queria ser capaz de criá-lo como eu o imaginava quando criança. Estou realmente contente de que tem havido uma resposta esmagadora concernete a arte do jogo.

Cyrille (DotEmu): Lizardcube nos inspirou na verdade! Omar e Ben vieram a nós com o projeto em mente em 2015. Eles foram tão apaixonados pelo jogo original, e seu protótipo inicial era realmente tão bonito, que fomos motivados instantaneamente a fazer isso acontecer. Ele está realmente em linha com a nossa visão. Também, The Dragon’s Trap é realmente um ótimo jogo. Eu pessoalmente não o conhecia antes que eles me mostrassem para mim mesmo se eu tivesse um SMS naquele tempo :) Mas eu realmente vi seu potencial como as mecânicas e design do jogo realmente velhos bem através dos anos.  

Sobre Steam. Conversando com vocês (equipe da Lizardcube ), eu perguntei se o Wonder Boy ia ser lançado para Steam. E a resposta foi sim ( :D), mas um pouco mais tarde. Quais plataformas? Windows, Mac OS e Linux?

Omar: Pretendemos para junho no lançamento do Steam para Windows. Sobre Mac OS e Linux, ainda não sabemos se haveria interesse o suficiente dos jogadores, mas investigaremos a possibilidade.

Planos para o futuro. Não precisa dar spoilers, mas mais jogos do Master system ? (Por favor, diga-nos que a resposta é sim =)

Ben: É na verdade algo que temos que compreender. Precisamos relaxar um pouco e visualizar o que o futuro pode oferecer. Talvez outro remake, talvez um jogo original, quem sabe….

Campus Party 2017

Beleza cambada. Sabadão eu estive no ultimo dia da Campus Party e conheci uma galera, fiz novos amigos e vi muita tecnologia. Eu queria ter postado este vídeo Sábado mesmo, mas acabei chegando muito tarde em casa e adiei para ontem.

Confiram o vídeo e como foi o ultimo dia do evento:


Entrevista com Wellington, escritor do livro "Aprendendo Docker - do basico a orquestração de conteiners"




 Beleza cambada? Para quem não assistiu ainda, ontem teve a entrevista com o Wellington Figueira da Silva. Escritor do livro "Aprendendo Docker - do basico a orquestração de conteiners" onde saberá como foi que conheceu e sua inspiração para escrever o livro.

 Peço desculpas a todos pelo áudio, mas só conseguimos gravar em uma esfirraria (que apesar que foi bom pra caramba):

Entrevista com TJTownsend - criador do jogo Pythetron



  • Gabriel Costa: Antes de tudo, como de costume, gostaria de agradecer por aceitar o meu convite. Poderia dizer as pessoas quem é TJ Townsend? Experiencia profissional, vida pessoal.
  • TJ Townsend: Minha principal fonte de renda tem sido minha carreira de cursos de desenvolvimento no mundo do treinamento corporativo online. No entanto, eu sempre tive uma paixão por vídeo games e sempre fiquei de olho em ferramentas para desenvolver meus próprios jogos. Quando eu era criança na década de 90 eu comecei a programar Qbasic e fazer pixel art no Mircosoft Paintbrush. no final da década de 90, eu estava mexendo com gráficos 3d iniciando com o TrueSpace e eventualmente aprendendo 3d Studio e Photoshop. Começando no inicio dos anos 2.000 ActionScript e Flash foram minhas principais ferramentas para desenvolvimento até 2.013 quando eu comecei a aprender C# e Unity. Nos últimos anos, eu me encontrei fazendo alguns trabalhos de marketing para jogos criando posters, ícones, vídeos, packaging design e concept art. É um jeito engraçado de estar envolvido no mundo do vídeo game sem na verdade estar na empresa.


  • Gabriel Costa: Qual é a inspiração para jogo Pytheron? Digo, pode nos explicar a origem do nome, uma curta estória do jogo e porque naves espaciais?
  • TJ Townsend: Pythetron começou com um tutorial de como fazer um jogo muito básico de asteroides e envolvido a partir dali. Meu objetivo sublime foi fazer o primeiro speed-run centric shoot'em up que parecesse  um jogo old-school mas que tivesses, mas que tivesse a beleza e recursos fornecidos por um motor gráfico moderno. Eu escolhi fazer 2.5d por essa razão. Você pode fazer o jogo ter a aparência e sensação de jogos 2d do passado, mas oferece uma experiencia visual mais a par com jogos modernos.
Clique aqui para baixar o jogo
  • Gabriel Costa: Como Pythetron foi desenvolvido?
  • TJ Townsend: Eu sabia que eu tinha experiencia em todos os aspectos individuais de game making e com o motor Unity. Eu sabia que era somente uma questão de aplicar esforço e eu sabia que eu era capaz de desenvolver um jogo muto sólido. Meu pensamento inicial era que o gênero shoot'em up era um bom ponto inicial desde o motor de física incorporada, Unity, fornece seria mais do que capaz o suficiente de cuidar do jogo sem que eu tenha que fazer quaisquer levantamento pesado de um ponto de física. Quando eu comecei o jogo, eu tinha somente uma ideia muito vaga para uma história. Eu queria que o jogo fosse o centro em torno da gamplay primeiro. A história viria depois. O que eu não esperava era o nível de otimização eu que tinha que fazer quando criar o motor de jogo para que o jogo parecesse responsivo e rodar bem mesmo em hardware antigo. O desenvolvimento do motor de jogo parecia uma constante batalha ladeira acima devido aos meus padrões de gameplay leve em hardware gráficos antigos. Enquanto eu desenvolvia o jogo, eu mantinha um contador na tela que me deixaria saber de um frame levaria mais tempo que 1/60th de segundo para ser exibido. meu objetivo foi ser capaz de jogar um nível de teste de gráficos pesados e nunca ter queda de frame rate abaixo de 60fps. Depois de 12 meses de desenvolvimento do motor eu terminei de programar muitas técnicas de otimização diferente que constantemente escalaria os gráficos baseado em quanto tempo um frame levou para processar e quanto tempo um frame levou para aparecer. O motor analisa os frames e determina se o jogo está ao ponto de ter inclinação abaixo da mágica marca de 60fps escalará de volta baseado em que processo está sendo mais taxado. Cada frame descarregou para isso processos bastante, assim o carregamento é eventualmente distribuído. Por exemplo, se ele estiver começando a levar muito tempo para renderizar um frame, os sistemas de partícula através de todo o jogo começará a afinar, os shadow maps começarão a baixar a resolução, ou mesmo desligar completamente nos cenários onde não seria perceptível para o jogador. O anti-aliasing ajustaria, fontes de luzes não importante desligariam, raycasts e outros processos intensivos de CPU tomariam vezes utilizando a largura de cada frame. Essas foram todas as coisas que eu não estava esperando desenvolver que eu senti que era essencial em fazer uma boa experiência. 

  • Gabriel Costa: Você pretende continuar o desenvolvimento de Pytheron?
  • TJ Townsend: Depois que eu estava convencido de que eu tinha um bom motor de jogo, eu disponibilizei o jogo publicamente para obter um parecer de como ele seria recebido. A recepção para o jogo foi lista. O problema foi que eu passei um ano em uma bolha, otimizando a jogabilidade para mim mesmo. O jogo foi literalmente desenvolvido e testado por mim somente para um ano inteiro antes mesmo de obter feedback de outros. Essa foi uma decisão fatal na minha opinião. Eu decidi colocar o jogo no Kickstarter e deixar as pessoas decidirem se o jogo valia a pena ser concluído. Apesar de meus esforços de levantar conhecimento a respeito do jogo; ela falhou encontrar objetivo no kickstarter. No final eu tive bastante diversão e aprendi muito. O desenvolvimento do jogo não foi cancelado, mas está no aguardo. Minha esperança é que o jogo possa encontrar uma audiência ou um investidor com vontade de financiar o desenvolvimento mais adiante.
  • Gabriel Costa: Você possui algum outro jogo?
  • TJ Townsend: Aparte de mini games simples, eu criei para trabalho outro jogo completo que eu fiz foi um simulador de pescaria feito em flash. Era um jogo dependente de servidor que foi perdido em uma quebra 10 anos atrás.

Marcadores

A pior história sobre Linux que já ouvi (5) A.I (1) ambiente gráfico (19) AMD (14) analise (10) Andriod (15) android (7) artigo (5) aws (1) bc (18) benchmark (5) BSDs (27) btrfs (31) bugs (1) Caixa de Ferramentas do UNIX (19) canto do Diego Lins (2) certificações Linux (7) Código Fonte (53) comandos (26) comp (1) compressores (5) container (6) CPU (19) criptografia (4) crowdfunding (9) cursos (24) daemons (13) Debian (31) desenvolvimento (82) desktop (19) DevOps (3) DevSecOps (3) dic (1) Dica de leitura (87) dica DLins (2) dicas do Flávio (27) Dicas TechWarn (1) diet libc (1) diocast (1) dioliunx (3) distribuições Linux (13) Docker (11) DragonflyBSD (21) ead Diolinux (2) edição de vídeo (5) EMMI Linux (4) emuladores (6) endless (5) English interview (3) Enless OS (2) entrevista (17) espaço aberto (82) evento (6) facebook (1) Fedora (10) filesystem (78) financiamento coletivo (2) fork (4) fox n forests (4) FreeBSD (20) Funtoo Linux (13) games (90) gerenciadores de pacotes (3) GOG (3) google (8) gpu (3) hardware (102) hash (1) helenos (3) I.A (1) init system (8) Intel (15) IoT (1) ispconfig (1) jogos (36) kde (1) kernel (134) lançamento (62) leis (1) LFCS (1) licenças (8) Linus (16) linus torvalds (2) Linux (194) linux foundation (3) linux para leigos (1) live (5) LPI (8) LTS (1) machine learning (1) matemática (5) mesa redonda (27) microsoft (6) microst (1) muito além do GNU (149) não viva de boatos (9) navegadores (3) NetBSD (7) novatec (17) novidades (1) nuvem (1) o meu ambiente de trabalho (3) off-topic (12) open source (83) OpenBSD (5) OpenShift (1) os vários sabores de Linux (39) padrim (2) palestras e eventos (5) partições (6) pentest (8) pipewire (1) processadores (27) professor Augusto Manzano (11) Programação (61) promoção (1) propagandas com Linux (8) Red Hat (21) redes (3) resenha nerd (4) Resumo da Semana do Dlins (2) resumo do Tux (19) retrospectiva Linux (1) risc-V (12) RISCV (11) runlevel (2) segurança digital (19) servidores (1) shell (3) sistema operacional (23) smartphones (3) Software livre e de código aberto (151) sorteio (3) Steam (9) Steam no Linux (7) supercomputadores (4) suse (7) systemd (7) terminal (84) terminal de comandos (12) toca do tux (1) toybox (23) tutorial (6) Tux (3) unboxing (7) UNIX (16) UNIX Toolbox (14) vartroy (1) vga (1) virtualização (1) vulnerabilidade (4) wayland (5) whatsapp (1) Windows Subsystem for Linux (2) wine (14) WoT (1) ZFS (14) zsh (2)