Do It Yourself (ou não)

Há algum tempo tenho feito alguns “experimentos” no meu canal do YouTube, afim de aprimorar também essa plataforma para que se torne um complemento desse blog.

Algumas lives sobre programação e principalmente, alguns mini projetos relacionados ao MSX e computação em geral, tem sido feitos nesse interim, como a live onde demonstrei o código da engine 3D portado a partir do vídeo e código apresentados em “Code it yourself – First person shooter” do excelente canal do Javidx9.

Pop!Live Stream Code It yourself-First person shooter on MSX-TR (Quick and simple Turbo Pascal 3.3F)
Pop! Live Stream – Code It yourself – First person shooter (Quick and simple Free Pascal)

Hoje finalmente liberei mais um formato, que acredito ainda precisar de aprimoramentos de maneira geral.

É o quadro “Faça você mesmo (ou não)”, para isso já até criei a playlist só para facilitar a busca nos vídeos dessa série em meu canal.

Entretanto podemos dizer que esse formato ainda é WIP (Work In Progress) e que estaremos ajustando nos próximos vídeos.

Toda sugestão é bem vinda.

MSX 1.1 Expert XP800 Capacitor Recap e CPU upgrade (Z80 6Mhz)

[]’s
PopolonY2k

Print Friendly, PDF & Email

Hungarian rapsody

A computação é uma ciência “recente”, que se move quase que na velocidade da luz em comparação com as demais ciências.

Em pouco tempo diversas mudanças ocorrem e tecnologias dominantes são praticamente varridas quase que para baixo do tapete em “segundos”.

É uma área em constante mudança que acontecem desde a concepção da tecnologia em seus mínimos detalhes, mesmo os invisíveis a olho nú, até aqueles estruturais e que abalam o ecossistema todo, ecoando através dos tempos deixando sua marca nos mais diversos meios de comunicação.

Nesse cenário a indústria de desenvolvimento de software moderna tem aprendido muito através do desenvolvimento de novas ferramentas que auxiliam a construção de tecnologias e produtos, entretanto nem sempre existiram IDE’s poderosas capazes de integrar com debuggers e analisadores estáticos, dentre outros ferramentais disponíveis na atualidade.

Borland Turbo C 2.0

No inicio dos anos 90, IDE’s como Turbo Pascal 5.0 e Turbo C 2.0, da Borland, começavam a revolucionar a forma como softwares eram desenvolvidos, com seus debuggers integrados, excelentes editores de código com seus syntax highlighting.

Entretanto nessa época os desenvolvedores, em sua grande maioria, não terceirizavam sua confiança e competência nas IDE’s e na maioria das vezes utilizavam ou desenvolviam técnicas para auxiliar a organização, compreensão e depuração do código.

Charles Simonyi

Nessa mesma época, Charles Simonyi, um jovem engenheiro de software nascido na Hungria e que havia sido recrutado por Bill Gates para trabalhar no desenvolvimento da suite Microsoft Office na Microsoft, começou a popularizar uma técnica que já havia sido criada por ele em seu antigo emprego na Xerox PARC.

Essa técnica consiste em uma notação de código, independente de plataforma e linguagem, que tenta padronizar prefixo de nomes de variáveis de acordo com seus tipos e comportamento, bem como estilo de nomes de funções (se estendendo a classes) de forma a deixar o desenvolvimento uniforme e com um padrão conhecido e documentado, auxiliando a compreensão principalmente em grandes projetos e por pessoas diferentes.

Esse padrão é conhecido como notação húngara (hungarian notation) e foi popularizada pela Microsoft em suas literaturas oficiais, principalmente nos anos 90, sendo ainda um padrão forte dentro da empresa até os dias atuais.

Programming Windows 3.1

Eu mesmo conheci essa notação em 1993, quando adquiri a terceira edição de Programming Windows 3.1, de Charles Petzold – Microsoft Press, esse também um dos melhores escritores de livros técnicos que eu já li (menção honrosa também a Peter Norton), me apresentando assim essa notação.
Me rendendo ao entusiasmo de Petzold, decidi tentar escrever todo software que eu pudesse, utilizando notação hungara para saber se traria algum benefício, não só por isso mas também porque meus softwares começavam a se tornar cada vez maiores e complexos, portanto eu deveria tornar as coisas mais compreensíveis para o EU do futuro.

Apesar de ser alguém, corportivamente falando, com raízes fortíssimas no UNIX, tendo iniciado no XENIX, passado por SCO UNIX, IBM-AIX e Sun Solaris, confesso que era bastante influenciado pelo estilo Microsoft, antes dela se tornar esse elefante branco que é hoje, pois ela era a Google da época e portanto uma forte influenciadora dentre os jovens programadores, algo em proporções muito maiores do que ela mesmo representa nos dias atuais junto aos programadores mais jovens.
Pessoalmente, a Microsoft foi um dos pais do padrão MSX, portanto era “alguém” por quem eu tinha um certo carinho até então e por isso usar uma notação difundida pela Microsoft e não pela galera do UNIX, a qual eu estava mais corporativamente inserido, não foi nada estranho.

Sobre a notação húngara, abaixo vou deixar alguns exemplos retirados desse documento, que é bem simples e direto e que faço questão de deixar aqui em meu site, mas também fazer referência ao link original onde ele originalmente está hospedado aqui e que me pareceu ser uma plataforma de ensino inglesa bem interessante.

[]’s
PopolonY2k

Print Friendly, PDF & Email

“I double cross you and you get mysterious mail”

Com o avanço da tecnologia, principalmente no decorrer dos últimos 30 anos, chegamos a uma época em que a grande maioria dos profissionais de desenvolvimento de software e tecnologia, “terceirizaram o desenvolvimento” para os diversos frameworks existentes nas mais diversas linguagens, limitando assim muito o potencial da própria solução que se propõe a resolver.

Infelizmente técnicas simples e eficazes, outrora largamente utilizadas no passado, passam despercebidas hoje e sequer são implementadas pois esperamos que uma peça pronta o faça para nós.

Uma dessas técnicas é conhecida como double-buffering, amplamente utilizada em jogos e comunicação de dados desde os primórdios da computação, principalmente depois que dispositivos baseados em DMA passaram a ser mais populares e acessíveis do que os dispositivos baseados em portas (Port Mapped I/O), possibilitando assim um paralelismo “implicito” feito por hardware e software.

Single buffering technique

A indústria de jogos tem utilizado a técnica de double buffering, por exemplo, para evitar o “flickering” ao se desenhar diretamente no dispositivo de vídeo, em alta velocidade, o que geralmente causa perda e/ou corrupção de frames gerando esse efeito indesejado, dentre outros usos.

Double buffering technique

No campo da comunicação de dados, double buffering tem sido amplamente utilizado principalmente em processamento de dados que exigem um certo grau de paralelismo, o que é comumente encontrado em qualquer modelo simples de produtor/consumidor.

Double buffering in communication strategy

Como infelizmente perdemos anos preciosos de nossas vidas terceirizando as soluções que deveríamos ter feito nós mesmos, sugiro agora um pequeno “atalho” que é esse vídeo abaixo, bem como sugiro que se inscrevam no canal do cara do vídeo, que contém vídeos rápidos sobre diversas técnicas extremamente úteis e talvez por isso tenha poucos views e inscritos.

[]’s
PopolonY2k

Referência na internet

https://doc.embedded-wizard.de/framebuffer-concepts?v=9.00

https://gameprogrammingpatterns.com/double-buffer.html

Print Friendly, PDF & Email

To infinity… and beyond.

Além dos tradicionais lançamentos de sondas espaciais, foguetes, satélites, homens no espaço bem como na lua, a agência espacial mais conhecida do planeta (quiçá em outros planetas), a NASA, tem feito um esforço para tornar conhecidas as suas iniciativas no desenvolvimento de software.

NASA
NASA logo

Apesar de muito conhecida por seus grandes feitos desde a época da corrida espacial nos anos 50, é óbvio que além de todo o conhecimento científico adquirido com esses feitos, principalmente o conhecimento e desenvolvimento matemático e algorítmico devem ter sido algo jamais experimentado na história da humanidade em um curto intervalo de tempo.

Como a NASA foi criada em uma época em que o “segredo” era algo que poderia mudar o rumo da história devido a um momento de “guerra” (psicológica) entre as duas maiores potências da época, é normal que tudo o que fora desenvolvido por essa agência fosse “secreto” até então.

Entretanto os tempos são outros e a quantidade de informação existente hoje não justifica mais nenhum “segredo”, uma vez que é muito mais interessante que a própria agência se beneficie das vantagens do compartilhamento via iniciativas de software open source.

Até mesmo outras agências, como a DARPA, vem utilizando há anos software open source em seus projetos internos.
Eu mesmo já obtive um feedback há uns 15 anos atrás, onde um engenheiro da DARPA me pareceu estar usando a minha biblioteca JMML (Java MSN Messenger Library), já naquela época.

Voltando à NASA, desde o ano passado percebi que a agência tem demonstrado estar bem compromissada em organizar um grande catálogo contendo todas as suas tecnologias em software, já criadas e utilizadas em seus projetos.

NASA Software Category

Na imagem acima podemos ver todas as categorias de software contemplados pela iniciativa.
Particularmente me interessei pela “Data servers processing and handling” e ao abrir essa categoria, percebi que tenho, só ali, um universo a ser explorado que irá me levar “ao infinito e além“.

Segue abaixo o link da iniciativa.

https://www.nasa.gov/directorates/spacetech/techtransfer/Software_Catalog_2019

https://software.nasa.gov/

[]’s
PopolonY2k

Print Friendly, PDF & Email

For Ada with love

Esse é um pequeno resumo da vida de Ada Augusta Byron King a Condessa de Lovelace, mais conhecida como Ada Lovelace.

Ada Augusta Byron King (Ada Lovelace)

Ada Lovelace é reconhecida por ter escrito o primeiro algoritmo processado por uma máquina, que foi a máquina analítica de Charles Babbage.

Charles Babbage sequer ainda tinha percebido a potencialidade da capacidade programática de sua máquina, entretanto Ada vislumbrou essa característica infinita do invento de Babbage. Por esse motivo Ada é reconhecida como a primeira programadora, ou programador em sentido mais amplo, da história da computação.

Ada era a única filha legítima do poeta Lord Byron e sua posição na sociedade da época era bem avantajada considerando a maioria das pessoas daquele período e apesar de ter nascido em situação privilegiada, ela se contrapôs ao “status quo” que naturalmente poderia tê-la feito entrar em uma situação de conforto levando-a talvez ao ostracismo e a viver uma vida irrelevante para a melhoria da humanidade.

Devido a sua capacidade de vislumbrar coisas inexistentes e até fantasiosas para a maioria das pessoas, talvez ela tivesse seguido a carreira artística influenciada por seu pai, entretanto Lord Byron morreu durante a guerra da independência Grega, deixando Ada órfã de pai com apenas 8 anos de idade.

Graças a Deus, a mãe de Ada Lovelace, Anne Isabella “Anabella” Byron, promoveu e estimulou o interesse de sua filha em matemática e lógica, até mesmo porque ela via na matemática uma forma de sua filha se distanciar do que ela acreditava ser a “insanidade” de Lord Byron.

Porém o que Anabella não sabia é que a “insanidade de Lord Byron” era justamente a sua “genialidade artística” e que isso jamais poderia ser retirado de Ada.

A “genialidade lógica e matemática” de Ada aliada à sua “genialidade artística”, naturalmente levaram-na a ter contato com Charles Babbage e, consequentemente, ter acesso a seu grande trabalho que foi a máquina analítica.

Durante sua vida Ada desenvolveu vários trabalhos matemáticos, por vezes complementando trabalhos de outros e também desenvolvendo os seus próprios.

Infelizmente Ada Lovelace viveu até os 36 anos de idade apenas, quando morreu de câncer.

Apesar de ter perdido seu pai muito cedo, Ada continuou interessada em sua vida e seus feitos e, a seu pedido, foi enterrada ao lado de seu pai, Lord Byron, quando morreu.

Ada Lovelace mudou o mundo, inclusive a criação do software que mantém essa página aqui, redes sociais e todos os demais softwares criados ao redor do planeta, depois de seu feito inicial de abrir o entendimento da humanidade sobre como comandar máquinas através de sequencias lógicas e matemáticas, conhecidas hoje como programas de computador ou simplesmente softwares.

Obrigado Ada.

PopolonY2k

Print Friendly, PDF & Email