sábado, 26 de dezembro de 2020

CLEAN CODE: A HANDBOOK OF AGILE SOFTWARE CRAFTSMANSHIP (ROBERT C. MARTIN)

Ouvia falar sobre "clean code" para lá e para cá, mas não sabia, de fato, sobre o que se tratava. Decidi, então, ler o seminal "Clean Code: A Handbook of Agile Software Craftsmanship", do Robert C. Martin, mais conhecido como "Uncle Bob".

Mesmo já seguindo algumas das ideias apresentadas no livro, fiquei fascinado com outras que me passavam despercebidas, as quais irão mudar a forma como encaro a programação atualmente. Curiosamente, uma coisa que venho colocado em prática desde o início das atividades remotas do meu estágio é, antes de realizar um commit, dar um 'git status' e verificar todas as alterações nos arquivos que criei ou modifiquei, a fim de realizar melhorias e testes para ter certeza que o código está legível, coerente e não está quebrando o sistema.

Me interessei tanto no assunto que também pretendo ler o "Clean Architecture", assim que conseguir uma folga nas atividades da faculdade.

COMPRAR / LEITURA

sábado, 28 de novembro de 2020

PROCESSING: CREATIVE CODING AND COMPUTATIONAL ART (IRA GREENBERG)

Na minha humilde opinião, Processing: Creative Coding and Computational Art é o melhor livro sobre programação criativa e Processing que li até agora. Aborda desde conceitos básicos, passando por Orientação a Objetos, e ainda dá uma pincelada na matemática e na física envolvida em movimentos e interações realizadas pelos elementos. É uma obra que vale à pena ter a versão física para revisitar de vez em quando.

Organizei todos os códigos-fonte e disponibilizei no meu repositório no GitHub, onde realizo uma curadoria sobre Design Generativo.

* * *

"Processing is a didactic that is based on the idea that programming can be learned very easily through the creation of screen art. The main goal is to educate designers and artists. The book in combination with the programming environment also presents an excellent implementation of the concept. I recommend this work for anybody who wants to explore programming in a different way, or for a teacher who wants to get inspired for his or her own programming class." (Gerald Friedland, ACM Computing Reviews, October, 2008)

"The book is intended as an introduction to programming for designers and artists using the Processing language and environment, a language designed ‘by artists for artists’ and available as open source. It contains 13 chapters, and begins with a relatively gentle introduction to Processing. It continues with chapters focusing on imaging, animation, and three-dimensional (3D) graphics." (Jeffrey Putnam, ACM Computing Reviews, Vol. 49 (8), August, 2008)


sábado, 21 de novembro de 2020

GALERIA MARGINAL #224

 Artista: Frederick C. Frieseke (1874-1939)




















CONCRETAGENS #470

 Por Gene Beery

CONCRETAGENS #469

 Por Décio Pignatari

CONCRETAGENS #468

 Por Carl Andre

CONCRETAGENS #467

 Por Jim Andrews

CONCRETAGENS #466

 Por Anatol Knotek

ESL DISCUSSIONS - AMBIÇÃO



STUDENT A's QUESTIONS

(1) O que vem à mente quando você ouve a palavra "ambição"?

Desejo profundo por algo, como poder, riqueza, ou algum outro de tipo de realização pessoal ou coletiva.


(2) Você é ambicioso?

Ambiciono apenas realizar algumas metas e vivenciar algumas experiências, mas não no sentido de acumular riquezas materiais ou ter poder (para controlar as pessoas, por exemplo).


(3) É importante ter ambições?

Sim, pois penso que é por meio das ambições que direcionamos as ações que realizamos diariamente, a fim de conseguirmos alcançá-las.


(4) Quem é a pessoa mais ambiciosa que você conhece?

Não sei...


(5) Quais eram suas ambições quando você era criança?

Ser jogador de futebol ou cientista (algo que está se tornando realidade, pois, em breve, me formo em Ciência da Computação na Universidade Federal do Ceará).


(6) As ambições podem ser perigosas?

Sim, pois as pessoas podem ignorar alguns limites éticos e morais, e agir de maneira inescrupulosa para tentar alcançar seus objetivos.


(7) Que ambições você tem que acha que vai realizar e quais ambições você tem que não vai realizar?

Me graduar e ser engenheiro de software são as minhas ambições mais "realizáveis" no momento. Por outro lado, também tenho planos de viajar para alguns lugares do mundo, mas não sei se isso chegará a se concretizar por completo.


(8) Você acha que os animais têm ambições?

Talvez sim, mas não acho que possuam o senso de planejamento (crítico e racional) que nós temos para alcançá-las.


(9) Thomas Carlyle disse: “Tenho uma grande ambição de morrer de exaustão em vez de tédio”. O que você acha que ele quis dizer com isso? Você concorda?

Concordo, desde que não seja por exaustão de trabalho. Acho que essa fala tem relação com a questão de aproveitar a vida ao máximo.


(10) Thomas Jefferson disse: “Nada pode impedir o homem com a atitude mental correta de alcançar seu objetivo; nada na terra pode ajudar o homem com a atitude mental errada. ” Você concorda?

Não acho que esse aforismo seja totalmente válido. A vida é muito imprevisível e existe muita injustiça na sociedade.


STUDENT B's QUESTIONS

(1) Por que temos ambições?

Acho que é da nossa natureza.


(2) Qual é a diferença entre uma ambição e um sonho?

Embora também possa se tornar real, acho que um sonho pode ser algo mais utópico.


(3) Qual ambição você tem por mais tempo?

Viajar para alguns lugares do mundo, como Egito, México, Austrália, França, dentre outros.


(4) O que acontece depois que você realiza todas as suas ambições?

Acho que isso nunca acontece de verdade...


(5) Você acha que pessoas mais idosas têm ambições?

Certamente.


(6) Você gosta de pessoas ambiciosas?

Depende de como a pessoa age para alcançar seus objetivos. Por exemplo, se for por meio da exploração ou utilização de esquemas injustos em relação às outras pessoas: Não.


(7) Você tem alguma ambição realmente louca e selvagem?

Pular de paraquedas (mesmo tendo muito medo de altura).


(8) Como você acha que é cumprir uma ambição para toda a vida?

Não faço ideia...


(9) Thomas Merton disse: “Quando termina a ambição, começa a felicidade.” O que você acha que ele quis dizer com isso? Você concorda?

Em partes, pois pode acontecer de alcançarmos uma ambição e sentirmos apenas um prazer ou felicidade momentânea, que se atenua cada vez mais com o passar do tempo. Além disso, se nossa felicidade é dependende da realização de muitas ambições, pode acontecer de nunca nos sentirmos totalmente satisfeitos, ou seja, sentiremos sempre uma necessidade de focar nossas energias na realização de outros desejos.


(10) Marco Aurélio disse: “O valor de um homem não é maior do que o valor de suas ambições.” Você concorda?

Não sei. O conceito de 'valor' é muito vasto, e aqui não está muito claro ao que se refere...

sábado, 7 de novembro de 2020

ALUMINIONS EM PIXEL ART

Já faz um tempo que meus Aluminions deixaram de ser apenas lacres de alumínio antropomorfizados no papel. Eles já integraram experimentos de modelagem 3D, programação criativa, stop motion... E agora estou pensando em utilizar também uma outra abordagem para representá-los, por meio de Pixel Art.

sexta-feira, 6 de novembro de 2020

TO BOLDLY GO WHERE NO INTERNET PROTOCOL HAS GONE BEFORE

Mesmo depois de ter cursado Redes de Computadores e Sistemas Distribuídos, eis uma empreitada que nunca passou pela minha cabeça. Simplesmente extraordinário!

* * *

Space exploration is hard, not least because of how difficult it is to communicate. Astronauts need to talk to mission control, ideally by video communication, and space vehicles need to send back data they gather, preferably at high speed and with little delay as possible. At first, space missions designed and carried their own distinct communications systems; that worked well enough, but it wasn’t exactly a paragon of efficiency. Then one day in 1998, the internet pioneer Vinton Cerf imagined a network that could offer a richer capacity to serve the growing number of people and vehicles in space. The dream of an interplanetary internet was born.

But extending the internet to space isn’t just a matter of installing Wi-Fi on rockets. Scientists have novel obstacles to contend with: The distances involved are astronomical, and planets move around, potentially blocking signals. Anyone on Earth who wants to send a message to someone or something on another planet must contend with often-disrupted communication paths.

“We started doing the math for the [internet standards] which had worked perfectly well here on Earth. However, the speed of light was too slow,” Cerf said of his early work with colleagues in the InterPlanetary Networking Special Interest Group. Overcoming that problem would be a major undertaking, but this American computer scientist and former Stanford professor is used to helping make big things happen.

Decades ago, Cerf and Robert Kahn — the “fathers of the internet” — developed the architecture and protocol suite for the terrestrial internet known as Transmission Control Protocol/Internet Protocol (TCP/IP). Anyone who has ever surfed the web, sent an email, or downloaded an app has them to thank, though Cerf is quick to push back on the fancy title. “A lot of people contributed to the creation of the internet,” he said in his usual measured voice.

"TCP/IP doesn’t work at interplanetary distances. So we designed a set of protocols that do."

To transfer data on Earth’s internet, TCP/IP requires a complete end-to-end path of routers that forward packets of information through links such as copper or fiber optic cables, or cellular data networks. Cerf and Kahn did not design the internet to store data, partly because memory was too expensive in the early 1970s. So if a link along a path breaks, a router discards the packet and subsequently resends it from the source. This works well in Earth’s low-delay and high-connectivity environment. However, networks in space are more prone to disruptions, requiring a different approach.

In 2003, Cerf and a small team of researchers introduced bundle protocols. Bundling is a disruption/delay-tolerant networking (DTN) protocol with the ability to take the internet (literally) out of this world. Like the protocols that underlie Earth’s internet, bundling is packet-switched. This means that packets of data travel from source to destination by way of routers that switch the direction in which the data moves along the network’s path. However, bundling has properties the terrestrial internet does not have, such as nodes that can store information.

A data packet traveling from Earth to Jupiter might, for example, go through a relay on Mars, Cerf explained. However, when the packet arrives at the relay, some 40 million miles into the 400-million-mile journey, Mars may not be oriented properly to send the packet on to Jupiter. “Why throw the information away, instead of hanging on to it until Jupiter shows up?” Cerf said. This store-and-forward feature allows bundles to navigate toward their destinations one hop at a time, despite large disruptions and delays. His most recent paper on the subject highlights the applicability of Loon SDN — a technology capable of managing a network that moves around in the sky — to NASA’s next-generation space communications architecture.

Beyond the interplanetary internet, Cerf, now in his 70s, also focuses on his day job as chief internet evangelist for Google. This is a fancy title he embraces, brimming with a preacher’s eagerness to spread the internet, via global policy development, to the billions of people around the world without it. He is at once ambitious with serious ideas, while maintaining a playful side. Even though he typically sports a well-trimmed beard and three-piece suit — some say he’s the inspiration for the god-like Architect in the Matrix movies — he once started a keynote speech by unbuttoning his jacket and shirt, Superman-style, to reveal a T-shirt that read: “I P ON EVERYTHING!”

FONTE

sábado, 10 de outubro de 2020

GALERIA MARGINAL #223

 Artista: Fred Ross







CONCRETAGENS #465

 Por Ronaldo Werneck

CONCRETAGENS #464

 Por Eduardo Kac

CONCRETAGENS #463

 Por Andrew Topel

CONCRETAGENS #462

 Por Gabriel Kerhart

CONCRETAGENS #461

 Por Ronaldo Azeredo

NOVO PROJETO PARA DIVULGAÇÃO CIENTÍFICA

Recentemente, decidi criar o sTuring, um projeto para realizar a divulgação científica de assuntos relacionados à Computação, que tem como intuito compartilhar um pouco do conhecimento que venho adquirido no meu processo de graduação.

Ver essa foto no Instagram

📖 DICTIONARY: COMPUTER SCIENCE Computer Science is not just about computers. Rather it is the study of computation and information, and is a subject which involves you in the very make-up of the world, and over the last 30 years it has transformed the way we run our everyday lives. The home computer revolution brought a PC into every home. Now, the internet and social media have transformed the way that we communicate and the spread of information around the world. Computer systems are all pervasive, ranging from the embedded system controlling a fridge to international banking systems handling billions of secure transactions every day. Beyond our everyday lives, Computer Science has had an equally large impact on other areas of science, most of which now require the processing and analysis of vast datasets. Computer Science encompasses theoretical ideas about how information is stored and processed and how we can express the instructions necessary to perform a useful computation. It is also about practical techniques for the creation of new computer software and hardware. As a subject, Computer Science requires logical thinking, creativity and problem solving. Since computer systems are now so large and complex, they are inevitably developed by large teams, so working well with others is also crucial. --- 📋 References: "What is Computer Science? - Computer Science, The University of York" - www.cs.york.ac.uk. Retrieved September 28, 2020. --- #computerscience #technology #society #sturing #programming #software

Uma publicação compartilhada por sTuring (@sturing.compsci) em


Dando uma navegada no YouTube, encontrei este vídeo que é muito pertinente: