Mostrando postagens com marcador computação. Mostrar todas as postagens
Mostrando postagens com marcador computação. Mostrar todas as postagens

sábado, 27 de julho de 2024

PRODUCTION-READY MICROSERVICES (SUSAN FOWLER)

Mais uma leitura bastante enriquecedora!

Um guia essencial para pessoas engenheiras de software que desejam garantir que seus microserviços sejam estáveis/confiáveis, escaláveis/performáticos, tolerantes a falha/preparados para catástrofes, além de possuírem um bom monitoramento e procedimentos de alerta baseado em métricas-chave, bem como uma documentação informativa para promover a compreensão arquitetural do todo.

Os tópicos sobre monitoria e documentação, tratados nos últimos capítulos, são especialmente importantes para mim, pois venho buscado trazer melhorias neste sentido em relação aos microserviços mantidos pelo meu time. O Production-Readiness Checklist, presente no apêndice, com certeza será um bom recurso nessa tarefa.


sábado, 1 de junho de 2024

DOMAIN-DRIVEN DESIGN DISTILLED (VAUGHN VERNON)

Iniciei meus estudos de DDD com o clássico de Eric Evans, mas gostaria de ter sido com Domain-Driven Design Distilled, de Vaughn Vernon.

Neste segundo, de maneira sucinta, são apresentados os princípios fundamentais do Design Orientado a Domínio (DDD), enfatizando a importância de uma profunda compreensão do negócio e da colaboração contínua entre pessoas desenvolvedoras e especialistas de domínio.

Vernon destaca conceitos chave como Bounded Context, Ubiquitous Language, Aggregates etc., que ajudam a organizar o código de forma coesa e modular.

A obra oferece uma abordagem prática e simplificada para aplicar DDD em projetos reais, promovendo a construção de software mais alinhado aos objetivos de negócios.

Ansioso para ler seu outro livro, também bastante referenciado: Implementing DDD.


sábado, 24 de setembro de 2022

LEARNING TEST-DRIVEN DEVELOPMENT (SALEEM SIDDIQUI)

Estavam faltando umas boas referências de TDD na minha biblioteca. O projeto implementado no livro está disponível no meu GitHub, bem como algumas referências importantes.

* * *

Your code is a testament to your skills as a developer. No matter what language you use, code should be clean, elegant, and uncluttered. By using test-driven development (TDD), you'll write code that's easy to understand, retains its elegance, and works for months, even years, to come. With this indispensable guide, you'll learn how to use TDD with three different languages: Go, JavaScript, and Python.

Author Saleem Siddiqui shows you how to tackle domain complexity using a unit test-driven approach. TDD partitions requirements into small, implementable features, enabling you to solve problems irrespective of the languages and frameworks you use. With Learning Test-Driven Development at your side, you'll learn how to incorporate TDD into your regular coding practice.

This book helps you:
  • Use TDD's divide-and-conquer approach to tame domain complexity
  • Understand how TDD works across languages, testing frameworks, and domain concepts
  • Learn how TDD enables continuous integration
  • Support refactoring and redesign with TDD
  • Learn how to write a simple and effective unit test harness in JavaScript
  • Set up a continuous integration environment with the unit tests produced during TDD
  • Write clean, uncluttered code using TDD in Go, JavaScript, and Python

domingo, 29 de maio de 2022

TEST-DRIVEN DEVELOPMENT WITH REACT (JUNTAO QIU)

Excelente leitura para estudar TDD através de tecnologias como React Testing Library, Cypress e Cucumber. É tão completo que ainda aborda gerenciamento de estado com Redux.

O único "problema" é que alguns trechos de código usam versões de bibliotecas antigas, mas foi um ótimo desafio para atualizar tudo para as mais recentes, fazendo os devidos ajustes.

O projeto implementado pode ser encontrado no meu perfil do GitHub.


sábado, 26 de março de 2022

ESL DISCUSSIONS - INTERNET




STUDENT A's QUESTIONS

(1) O que é a Internet?

Conforme postei no sTuring: A Internet é a "espinha dorsal" da Web, uma infraestrutura técnica que torna sua existência possível. As várias tecnologias que suportam a Internet evoluíram ao longo do tempo, mas o modo como ela funciona não mudou muito: a Internet é uma grande rede de computadores que se comunicam entre si.


(2) Como seria o mundo sem a Internet?

Sem a Internet, provavelmente, as coisas continuariam a ser como eram antes dela ser inventada. Por outro lado, se ela deixar de existir atualmente, neste mundo hiperconectado, a sociedade se tornaria um caos.


(3) Você poderia viver sem a Internet?

Poderia, mas seria uma vida bastante difícil.


(4) A Internet é perigosa?

Por mais benéfica que uma tecnologia pode ser, se cair nas mãos erradas, pode ser utilizada para fins maléficos.


(5) Que tipo de tecnologia substituirá a Internet?

Não sei de nada sendo desenvolvido neste quesito.


(6) O que te incomoda na Internet?

Atualmente, a quantidade de fake news.


(7) Você é viciado em Internet?

Sou bastante dependente para realizar minhas atividades diárias, mas não acho que sou viciado. Posso muito bem realizar outras coisas que não envolvam a internet, como ler um livro, por exemplo.


(8) O que você acha de sites de redes sociais como Facebook, MySpace e Bebo?

Com o tempo, se tornam cansativos. Meu status no Facebook, por exemplo, já nem atualizo mais.


(9) Você se lembra da primeira vez que usou a Internet?

Não me lembro, pois foi na minha infância, e minha mente é péssima para recordar acontecimentos longínquos.


(10) Você acha que impressões digitais ou varreduras de retina são melhores do que cartões de identificação?

Em termos de segurança, sim.

 
STUDENT B's QUESTIONS

(1) Como funciona a Internet?

Esta pergunta é respondida justamente no meu post do sTuring: Como Funciona a Internet.


(2) Como sua vida seria diferente sem a Internet?

Difícil de imaginar, pois a internet está em diversas atividades do meu dia-a-dia, desde estudos pessoais até o trabalho.


(3) Para que você usa a Internet?

Para trabalhar e aprender, principalmente. Em segundo plano, ela entra como uma ferramenta de interação social, através de aplicativos como WhatsApp e Instagram.


(4) Como a Internet mudou o mundo?

Basicamente, ela criou conexões globais que facilitaram bastante a troca de informações.


(5) Qual é a melhor coisa da Internet?

Através dela é possível acessar uma fonte quase inesgotável de conhecimento.


(6) A Internet poderia ter um nome melhor?

Não, acho que este nome exprime bem o seu propósito.


(7) Do que a Internet precisa mais?

Regulamentação. Digo isto mais no contexto da propagação de fake news.


(8) Qual é o seu site favorito da Internet?

Google, pois é através dele que encontro todas as outras coisas. Mas também gosto bastante do meu site pessoal.


(9) O que você acha da ideia de fazer compras pela Internet ou namoro online?

Compras online é algo recorrente para mim, diferente de namoro online. O máximo que acontece virtualmente são alguns flertes.


(10) Você acha que as pessoas vão preferir viver suas vidas na Internet em vez da vida real?

Algumas, talvez. Inclusive, este é um contexto abordado no anime Sword Art Online e no filme Ready Player One, os quais também fazem referência à Realidade Virtual.

segunda-feira, 7 de fevereiro de 2022

ME TORNEI REFERÊNCIA BIBLIOGRÁFICA

Quando apresentei meu Trabalho de Conclusão de Curso no início de 2021, achei que ele seria esquecido no meu repositório. Entretanto, hoje fiquei muito feliz em saber que um colega do campus de Crateús, está dando continuidade a esta pesquisa.

Vídeo da sua defesa de TCC I: https://www.youtube.com/watch?v=UiMXwaUxHz0

domingo, 23 de janeiro de 2022

ESL DISCUSSIONS - COMPUTADORES




STUDENT A's QUESTIONS

(1) O que é um computador?

Segundo o dicionário Michaelis: Máquina destinada ao recebimento, armazenamento e processamento de dados, em pequena ou grande escala, de forma rápida, conforme um programa específico.


(2) Quando você usou um computador pela primeira vez?

Não me lembro exatamente. Acho que foi quando frequentava o Telecentro do CEU Navegantes, quando era criança.


(3) Quão úteis são os computadores para você?

Como é de conhecimento de muitas pessoas, estas máquinas não se resumem a notebooks e desktops, também englobam dispositivos como celulares e wearables (dispositivos vestíveis), por exemplo. Assim, posso dizer que eles são intrínsecos ao meu cotidiano, desde o momento em que acordo, com o despertador do meu celular tocando, até as minhas atividades pessoais e profissionais, que executo no meu notebook.


(4) Qual é a melhor coisa sobre um computador?

Possibilidade de acessar a internet, que provê uma fonte inestimável de conhecimento.


(5) Qual é o seu software favorito?

Depende da atividade. Por exemplo, para navegar na internet e debugar aplicações web, prefiro o Google Chrome, para programar, gosto muito do VS Code.


(6) Como seria a vida sem o seu computador?

Muito difícil de imaginar.


(7) Você consegue se manter atualizado com as mais recentes tecnologias da computação?

Apenas em termos de tecnologias para desenvolvimento web e mobile. Sou um tanto leigo em relação ao contexto do hardware, conheço apenas o essencial para distinguir uma boa máquina para trabalhar nos meus projetos.


(8) Você controla computadores ou eles controlam você?

Computadores não controlam as pessoas. Acontece que existem pessoas que não sabem como interagir com estas máquinas de maneira saudável. Em muitas situações, eu mesmo me enquadro nesta categoria.


(9) Você gostaria de passar mais tempo com seu computador?

Não, já passo tempo suficiente. Vale ressaltar que, nos últimos anos, tenho buscado passar menos tempo nele, a fim de praticar um pouco da desintoxicação digital.


(10) O que aconteceria se todos os computadores do mundo parassem de repente para sempre?

A sociedade viraria um caos total. Inclusive, este seria um bom assunto para abordar em algum filme distópico.


STUDENT B's QUESTIONS

(1) Você gosta de computadores?

Desde criança, sempre fui fascinado por computadores.


(2) Você tem seu próprio computador?

Tenho um notebook pessoal, que já está na hora de trocar, e também um mais moderno, que utilizo no contexto profissional.


(3) Os computadores fazem você querer arrancar os cabelos (ou seja, ficar muito frustrado)?

Como desenvolvedor de software, posso afirmar que sim, pois resolver bugs é uma das atividades mais desafiadoras do processo.


(4) Qual é a pior coisa sobre os computadores?

Computadores podem ser usados para fins destrutivos, como em guerras ou coisas do tipo.


(5) Você sabe muito sobre computadores?

Por causa da minha formação em Ciência da Computação, tenho um conhecimento mais aprofundado em relação à maioria das pessoas. Contudo, ainda não acho que sou um expert em algum assunto em específico.


(6) Você acha que os computadores sempre serão parecidos com o que são agora (uma tela com teclado)?

Não. Os wearables (e até celulares) são a prova disso.


(7) Do que você sentiria mais falta se seu computador fosse retirado?

De programar e navegar na internet.


(8) Você gostaria de fazer um curso de informática?

Quando jovem fiz um curso de operador de microcomputador na extinta Data Byte.


(9) Você acha legal ser nerd ou geek?

Sim, pois gosto muito de estudar e saber como as coisas funcionam.


(10) O que você gostaria que os computadores fizessem que eles não podem fazer agora?

A criação de uma realidade virtual como em Sword Art Online ou Ready Player One seria interessante.

domingo, 9 de janeiro de 2022

ESL DISCUSSIONS - INTELIGÊNCIA ARTIFICIAL




STUDENT A's QUESTIONS

(1) O que vem à mente quando você ouve o termo "inteligência artificial"?

Algoritmos e robôs.


(2) O que é inteligência artificial?

Basicamente, inteligência artificial é um ramo da Ciência da Computação que busca simular a capacidade cognitiva humana em máquinas. Os sistemas de IA são regidos por algoritmos através de diversas técnicas, como machine learning e deep learning, a fim de demonstrar um comportamento "inteligente".


(3) Quais são os perigos da inteligência artificial?

Segundo a ficção cientítica, aniquilação ou domínio da raça humana. Mas, sendo realista, a inteligência artificial, assim como a computação em geral, está tornando alguns ofícios obsoletos. Então, um perigo para certas pessoas é a escassez de oportunidades de emprego, dependendo da sua área de atuação.


(4) A inteligência artificial algum dia será mais inteligente do que os humanos?

A inteligência artificial simula a inteligência humana, logo, penso que ela poderá resolver qualquer problema que nós também consegueríamos resolver, mas de forma extremamente mais rápida.


(5) Como a inteligência artificial está nos ajudando hoje?

Ela nos ajuda, principalmente, no processamento de grandes quantidades de dados nos mais variados campos do conhecimento.


(6) O que você sabe sobre a história da inteligência artificial?

Não conheço muito profundamente a história da inteligência artificial em si, apesar de ter estudados algumas técnicas na faculdade. Contudo, sei que um dos seus precursores foi Alan Turing, conforme abordei em um dos meus posts no sTuring.


(7) Quais são as coisas boas sobre inteligência artificial?

A primeira que me vêm a cabeça é a capacidade de processar grandes quantidades de dados, a fim de gerar informações úteis para tomadas de decisão em diversos contextos.


(8) Quão inteligente se tornará a inteligência artificial?

Difícil saber, ainda mais se ela andar em paralelo com a computação quântica no futuro.


(9) Existe diferença entre inteligência artificial e robôs?

Sim. Podemos dizer que inteligência artificial é um método baseado em algoritmos para simular o pensamento cognitivo, que não é necessariamente utilizado na robótica, ou seja, robôs podem ter funcionalidades bem definidas e limitadas, as quais não dependem de dados externos.


(10) Como seria estudar sobre inteligência artificial?

Estudei um pouco na faculdade, durante o curso de Ciência da Computação na UFC. Apesar de achar uma área muito promissora, no momento, não tenho interesse em me aprofundar nela.

 
STUDENT B's QUESTIONS

(1) Quais são as diferenças entre inteligência artificial e inteligência humana?

A primeira busca simular a segunda. Uma é baseada em mecanismos computacionais e a outra na capacidade biológica (neurológica).


(2) Os robôs algum dia controlarão o mundo?

Não. Isso é cenário de ficção científica.


(3) Como você gostaria que a inteligência artificial o ajudasse?

Trazendo um pouco do cenário da robótica (e ficção científica), gostaria de um assistente que pudesse me ajudar nas minhas atividades diárias.


(4) Como seria nossa vida sem inteligência artificial?

Muitas coisas que são automatizadas e processadas atualmente, teriam que ser feitas da maneira antiga, ou seja, de forma mais manual e menos eficiente, por assim dizer. Um exemplo extremamente importante seria a análise de uma grande quantidade de dados, conhecida como Big Data.


(5) As pessoas algum dia terão inteligência artificial como parte de seus cérebros?

Nunca parei para pensar nesta possibilidade. Soa como algo relacionado a ciborgues e afins. Mesmo assim, também acho que é um cenário de ficção científica.


(6) A inteligência artificial algum dia substituirá a necessidade dos humanos trabalharem?

Não. Penso que este é outro cenário de ficção científica.


(7) Quão inteligente você é?

Formalmente, nunca medi meu QI. Contudo, acho que estou na média.


(8) Que filmes você viu sobre inteligência artificial?

Os últimos que consigo lembrar são Blade Runner, Westworld, 2001: Space Odyssey, Wall-E, The Terminator, e Her.


(9) Quais são os três adjetivos que melhor descrevem a inteligência artificial?

Fascinante, revolucionária e complexa.


(10) Como será a inteligência artificial daqui a 100 anos?

Extremamente poderosa, ainda mais levando em consideração a evolução do poder computacional dos hardwares.

sábado, 9 de outubro de 2021

ENTREVISTA PARA A RÁDIO UNIVERSITÁRIA DA UFC

Nesta entrevista, logo no início do boletim (1min19seg), faço um breve relato da vitória da equipe Cactus no HackPI - Hackathon para a Primeira Infância Cearense.

domingo, 3 de outubro de 2021

HACKPI CEARÁ - HACKATHON PARA A PRIMEIRA INFÂNCIA CEARENSE

É com muita satisfação que anuncio que a equipe Cactus - Data Solutions, composta pelo David Nascimento, Henrique Costa, Rafael Vieira, Lucas Evangelista e eu, conseguiu desenvolver uma plataforma vencedora para o "HackPI Ceará - Hackathon para a Primeira Infância", organizado pela UFC em parceria com o LEPES da USP e com o Governo do Estado do Ceará, que teve como objetivo potencializar o desenvolvimento tecnológico e criativo do Sistema de Monitoramento da Qualidade da Educação Infantil Cearense.

Depois de corrermos contra o relógio, visando analisar a base de dados, com objetivo de gerar um output composto por informações que possam fornecer direcionamentos relacionados à problemática "potencializando o uso e a interpretação dos dados", conseguimos entregar uma aplicação tanto com front-end (ReactJS, React Charts.js) como back-end (Flask, Pandas, Heroku) implementados, mas passível de investimento em melhorias, conforme o feedback da banca avaliadora. Final de semana repleto de aprendizagens!

Que venham novos desafios!


domingo, 15 de agosto de 2021

PUBLICAÇÃO DO MEU TCC

Meu Trabalho de Conclusão de Curso intitulado "Geração procedural de modelos arquiteturais com geometria arredondada utilizando Selection Expressions (SELEX)" está disponível no repositório da UFC, para que pessoas interessadas em Modelagem Procedural possam dar prosseguimento a esta pesquisa.

No momento, não estou na vibe de embarcar em outra aventura acadêmica (mestrado) logo de cara, pois tenho como foco amadurecer ao máximo como desenvolvedor de software profissionalmente.

Entretanto, continuarei realizando minha pesquisa sobre Design Generativo de maneira independente, como já fazia há alguns anos, e compartilhando minhas descobertas e criações pela comunidade.

Vale ressaltar que o conteúdo complementar, como código-fonte, está disponível no GitHub.

quinta-feira, 8 de julho de 2021

GRADUAÇÃO E MERCADO DE TRABALHO

Minha segunda participação nas interações do StartUFC, um dos projetos que o Matheus Sampaio Castro articula na UFC - Campus Crateús. Espero que este bate-papo seja bastante agregador para a galera.

Acompanhem o projeto na página do Instagram.

sábado, 22 de maio de 2021

SCRUM: A ARTE DE FAZER O DOBRO DO TRABALHO NA METADE DO TEMPO (JEFF SUTHERLAND)

Apesar de já utilizar o Scrum desde o período de estágio, a leitura deste livro foi bastante agregadora, pois conheci o contexto histórico no qual ele foi criado. Descobri algumas outras características que não tinha conhecimento acerca da metodologia, e também aprendi que o Scrum transcende o processo de desenvolvimento de software, podendo ser aplicado em diferentes segmentos, como na educação e no ativismo social, por exemplo.

sábado, 17 de abril de 2021

THE PRAGMATIC PROGRAMMER (DAVID THOMAS E ANDREW HUNT)

Sempre fui um leitor ávido. Antes de prestar vestibular, li diversos livros clássicos de literatura, depois, também comecei a me interessar por poesia. Nesta linha, alguns dos meus títulos favoritos são Cem Anos de Solidão (Gabriel García Marquez), Capitães da Areia (Jorge Amado) e Toda Poesia (Paulo Leminski).

Mas, nos últimos tempos, tem crescido o meu interesse por livros técnicos, os quais estão mudando a minha perspectiva sobre desenvolvimento de software, sempre para melhor.

Outra obra que acaba de entrar para minha lista de favoritos é o The Pragmatic Programmer (David Thomas e Andrew Hunt), com suas diversas dicas e estudos de caso, que são abordados por meio de metáforas bem interessantes.

* * *

"Pragmatic Programmers don't shirk from responsibility. Instead, we rejoice in accepting challenges and in making our expertise known. If we are responsible for a design, or a piece of code, we do a job we can be proud of."

"People should see your name on a piece of code and expect it to be solid, well written, tested, and documented. A really professional job. Written by a professional. A Pragmatic Programmer."


domingo, 21 de março de 2021

EVOLUÇÃO DO MEU TRABALHO DE CONCLUSÃO DE CURSO

Apresento-lhes o poder da modelagem procedural onde, por meio de algumas regras generativas e diferentes parâmetros, é possível gerar uma infinidade de objetos, neste caso, modelos arquiteturais.

Nem estou acreditando que consegui implementar uma ferramenta dessa magnitude, sendo uma extensão do trabalho com Selection Expressions de alguns pesquisadores que são referências mundiais na área da Computação Gráfica, como Peter Wonka.

Posso dizer que estou preparado e confiante para defender meu TCC II.

(Obs.: Como não sou arquiteto, meus modelos ficaram estranhos mesmo.)

sábado, 9 de janeiro de 2021

MINHAS METAS PARA 2021

Nos últimos tempos, tenho percebido que evoluí bastante no que se refere à definir e cumprir metas. Das que tinha planejado para 2020, alcancei quase todas, faltando apenas algumas que se tornaram um pouco inviáveis em decorrência da pandemia, como praticar mais skate e BMX.

Penso que o que torna este processo mais prazeroso é ter bom senso e listar apenas o que é possível realizar, visando evitar desapontamentos e uma possível desmotivação.

Para esse ano de 2021, pretendo "focar" em:

‣ Desenvolvimento front-end e programação, por meio dos tópicos do 100 Days of Code, dos cursos da freeCodeCamp, do React Roadmap, e dos tutoriais do HackerEarth. Além disso, também pretendo conseguir algumas certificações no HackerRank.

‣ Praticar mais xadrez no Lichess, pois estou ficando enferrujado. 

‣ Revisar e aprender matemática (geometria, álgebra linear, cálculo, estatística etc.) nos cursos da Khan Academy, e também terminar o curso Introduction to Mathematical Thinking que iniciei no Coursera, mas não consegui terminar por causa da faculdade (ESSE ANO ME FORMO!).

‣ Assistir todos os filmes mostrados no The Evolution of Cinema (1878-2017), todos os curtas da lista Um curta para dia do ano, algumas séries, animes, e também ouvir mais podcasts, como o Filosofia Pop, e alguns outros sobre ciência e tecnologia, como o FalaDev da Rocketseat.

‣ Ler alguns livros sobre idiomas e, principalmente, continuar meus estudos de inglês, francês e espanhol na plataforma Duolingo, pois gosto muito desse processo de aprendizagem por meio da gamificação.

‣ Ler mais livros técnicos sobre desenvolvimento de software e Design Generativo.

‣ Responder questões de pelo menos 50 tópicos do ESL Discussions, para praticar o livre pensar.

‣ Fazer postagens no sTuring, publicar zines, gravar vídeos para o meu canal, desenvolver projetos para o Compixelar, e concluir a implementação do PolymApp.

Se vou conseguir alcançar todas estas metas é outra história, pois estou ciente das impresivibilidades da vida, entretanto, acredito na minha capacidade para tal.

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)


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

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: