Você está visualizando o site de uma EDIÇÃO PASSADA do QCon.

Track: Ciência da Computação no Mundo Real

Sala: 1 Londres

Dia da semana: Terça-feira

A ciência da computação está no dia-a-dia de toda pessoa que trabalha com programação. Os conceitos estudados e aperfeiçoados na academia são fundamentais para muitas bibliotecas, linguagens, bancos de dados, etc. Entretanto, a pesquisa na área por vezes se apresenta de forma obscura, inacessível a profissionais da engenharia de software.

Nesta track, aproximaremos teoria e engenharia. Serão apresentados cases e ideias inovadoras que, usando conceitos avançados em computação, permitem o desenvolvimento de sistemas mais eficientes e confiáveis.

Track Host: Juan Lopes

R&D Software Engineer na Intelie

Juan Lopes é doutorando em Engenharia de Sistemas e Computação pela UFRJ, ex-competidor do ICPC e ex-campeão brasileiro do IEEEXtreme. Trabalha na Intelie desenvolvendo sistemas distribuídos para processamento de eventos complexos aplicados a ambientes de IoT industrial e operações digitais.

10:50am - 11:35am

De Fortran a Julia: Computação Científica no Mundo Real

Hoje em dia, quando se fala Computação Científica é comum que se pense em Data Science. No entanto, existe muito mais no mundo da computação científica que não se conhece fora do nicho da matemática aplicada.

Nesta palestra, falaremos sobre os fundamentos da computação científica, sua história e a importância das implementações clássicas dos algoritmos básicos de Álgebra Linear Numérica para o desenvolvimento de diversas áreas da computação. Exploraremos também algumas aplicações destas técnicas, incluindo High Performance Computing (Computação de Alto Desempenho) e algumas técnicas usadas por cientistas e Engenheiros de Software Científico (Research Software Engineers) no desenvolvimento de aplicações científicas. Finalmente, discutiremos o surgimento de linguagens mais modernas, em especial Python e Julia, suas vantagens e desvantagens para a computação científica.

Melissa Weber Mendonça, Professora na UFSC

11:50am - 12:35pm

A Evolução de Profilers e Tracers na Netflix

O serviço de streaming da Netflix serve mais de 137 milhões de usuários globalmente que, em conjunto, consomem diariamente mais de 140 milhões de horas de conteúdo através de um sistema grande, complexo e em constante mudança. Nesta escala, ganhos de performance são amplificados e mesmo pequenas otimizações aplicadas a centenas de milhares de servidores, geram resultados expressivos. Por outro lado, problemas de performance têm um potencial destrutivo muito grande. Por estes motivos, é imperativo que todos engenheiros consigam facilmente entender a performance de como seu código é executado em todos ambientes.

Nesta palestra, Martin irá abordar algumas metodologias de análise de performance e como utilizá-las para resolver problemas e otimizar a execução da sua aplicação. Martin também irá apresentar uma visão geral sobre profilers e tracers de código, assim como diversas ferramentas atualmente disponíveis no mercado, seus pontos positivos e negativos, e quando devem ser utilizadas. Durante a palestra, Martin também irá demonstrar diversas visualizações para os dados gerados por tais ferramentas, e como as mesmas podem ser utilizadas em conjunto com as metodologias de análise para facilmente identificar problemas de performance e otimizar cada vez mais suas aplicações.

Martin Spier, Sr. Performance Architect at Netflix

2:05pm - 2:50pm

Algoritmos de consenso em sistemas distribuídos (teoria e prática)

Algoritmos de consenso são a base de vários sistemas distribuídos modernos, tanto privados quanto open source. Nesta palestra iremos revisar os principais algoritmos e protocolos de consenso distribuído (Paxos, Raft, ZAB, etc), suas implementações de código fonte aberto (ZooKeeper, etcd) e seus usos em alguns sistemas distribuídos privados e open source (Solr, Kafka, HBase), além de abordar arcabouços teóricos como o teorema CAP e a Impossibilidade de Fischer, Lynch e Patterson (FLP).

Desta forma, será possível entender as características de desempenho, corretude, dificuldades e limitações que tais algoritmos proporcionam no dia a dia.

Edward Ribeiro, Analista de Sistemas - TI no Senado Federal/Interlegis

3:05pm - 3:50pm

Your Program as a Transpiler: Applying Compiler Design to Everyday Programming

Many languages “transpile” into other languages, but compilers are still often seen as arcane pieces of software that only a master of the dark arts could write. But at the end of the day, both are programs that translate code from a programming language to another.

So what does make a transpiler simple and a compiler hard? What can we learn from these complex pieces of software? And are they really that complex?

The lessons we can learn from language implementation design patterns are really within the reach of everyone; not only can they apply to daily programming problems, but they are also key to really understand the basis of exciting new technologies such as the GraalVM project and the Quarkus stack. In our experience on the Drools and jBPM projects, we have come across many opportunities to apply programming language development techniques to a broader context. In this talk, we will see some of these examples.

Edoardo Vacchi, Senior Software Engineer at Red Hat

4:05pm - 4:50pm

Visão Computacional com GO e OpenCV

Softwares de Visão Computacional, proporcionam um grande potencial: o de se ter olhos ao redor do mundo. E com grandes poderes, vêm grandes oportunidades, como a de construir aplicações fantásticas.

Nos últimos anos, a biblioteca de código aberto OpenCV nos levou a grandes avanços e, igualmente, a comunidade Golang, ao longo dos seus 10 anos, deu saltos maravilhosos, tornando GO uma linguagem moderna, de alto desempenho, limpa e portável.

A linguagem GO, através do pacote GoCV, disponibiliza as bibliotecas de Visão Computacional mais modernas e avançadas que existem.

Nesta palestra, você aprenderá a usar GoCV para construir aplicações de visão computacional, através de demonstrações de código, com TensorFlow e Neural Compute Sticks (uma mini rede neural que cabe no seu bolso!).

Sheimy Rahman, Software Engineer at Zenvia Mobile

5:20pm - 6:05pm

Brasil.IO: Libertação de Dados Públicos, com Python

Analisar dados públicos não é tarefa fácil: estão disponíveis em muitas páginas, formatos de arquivos e padrões diferentes e por isso é comum a necessidade de criar softwares especializados para capturar, converter e limpá-los antes de analisá-los. Apesar de termos muita informação pública disponível no Brasil, muitos desses dados não são utilizados por jornalistas, cientistas políticos, estatísticos, advogados e pessoas de diversas outras áreas por conta da dificuldade de acesso a esses dados.

Ferramentas simples e básicas para quem trabalha na área da tecnologia podem gerar um impacto impressionante se aplicadas em áreas que ainda não possuem cultura de análise de dados disseminadas, como programas que convertem formatos ou mesmo gerenciamento de um banco de dados e utilização de SQL para análises superficiais.

Nesta palestra, serão apresentados aspectos técnicos do Brasil.IO, portal que nasceu para resolver esse problema. Brasil.IO é uma comunidade de desenvolvedores que criam scripts para capturar, limpar e estruturar bases de dados de interesse público, que ficam disponíveis no site para download e para acesso através de uma interface com filtros e também por uma API. O projeto é software livre e é utilizado por jornalistas, pesquisadores e ativistas, facilitando a criação de narrativas e aplicativos guiados por dados.

Álvaro Justen, Fundador do Brasil.IO

Tracks

  • Arquiteturas que você sempre quis conhecer

    Segredos arquiteturais de aplicações populares, com milhões de pessoas usuárias e que nunca saem do ar.

  • Engenharia aplicada a Machine Learning

    Conheça as principais técnicas de engenharia  e arquitetura de software de larga escala aplicadas a Machine Learning.

  • Microservices: melhores práticas e padrões

    Frameworks modernos e os desafios de implantação, gestão e pós-produção

  • Arquiteturas de vanguarda

    Conheça as tendências em técnicas, práticas e princípios que norteiam o estado da arte em arquitetura de software e podem ser alavancas não só para times e organizações de tecnologia, mas para os negócios, nos próximos anos.

  • Software Supply Chain

    Todas as fases do ciclo de vida de um artefato de software, do primeiro commit até o deployment. Segurança, observabilidade, genealogia e gestão de toda a sua cadeia de suprimentos de software

  • Machine Learning e Inteligência Artificial

    Algoritmos, técnicas e ferramentas: o que está por trás de sistemas e soluções cada vez mais assertivos.

  • Data Science aplicada

    Tecnologias e as boas práticas da ciência de dados trazendo ganho e diferencial competitivo para grandes empresas.

  • Java e JVM em evolução

    Performance, escalabilidade e as mais recentes novidades da principal plataforma de desenvolvimento no Brasil e no mundo.

  • JavaScript: a plataforma da web moderna

    Explore profundamente os frameworks que tornam o JavaScript tão popular e saiba como as linguagens baseadas em JavaScript estão evoluindo o desenvolvimento de front-end (e back-end).

  • Levando sua carreira para o próximo nível

    Habilidades e estratégias para destravar sua carreira e potencializar seu desenvolvimento profissional.

  • Construindo culturas de desenvolvimento duradouras

    Criando e evoluindo a cultura de empresas: novas formas de organizar times com foco em produtividade.

  • Ciência da Computação no mundo real

    Temas avançados em computação. Técnicas clássicas e modernas direto da academia para o seu código.

  • Linguagens do século 21

    Linguagens e plataformas emergentes, com ênfase em linguagens projetadas para alta concorrência e sistemas distribuídos.

  • AMA (Ask Me Anything)

    Discussões mais profundas com palestrantes do QCon São Paulo.

  • Solutions Track

    Conheça soluções, ferramentas e técnicas de empresas parceiras do QCon São Paulo.