The Darkmira Tour PHP 2017 is a yearly event that lasts 2 days and aims at reviewing the state of art of the security and PHP software factory.

Saturday 27th May 2017

08:40
6
Abertura do Darkmira Tour PHP 2017 in Auditório Central (20 minutes)

Abertura do Darkmira Tour PHP 2017

09:00
8
Keynote: An ElePHPant life
Keynote by Damien Seguy in Auditório Central (45 minutes)

The last ones who told me I could learn from a plush toy were my daughters. Of course, I acknowledged. Yet, it dawned on me : after ten years of life, the PHP plush has achieved so much ! It went to the White House and Antarctica ; it spawned forty thousands offsprings and a jet-set generation of collectors ; it built bridges within and outside the community. Nowadays, it is alive and kicking. It still reviews my code, casting an odd look to me, once in while. No one can have enough elephpant.

09:45
5
Coffee Break (30 min) in Auditório Central (30 minutes)

Coffee Break (30 min)

10:15 Encriptação de A à Z
Talk by Hussani Oliveira in Auditório Central (45 minutes)

Quando você precisa comunicar algo, mas não quer que nenhum enxerido saiba da mensagem, o que você faz? Naturalmente “falar em códigos” é parece ser a melhor opção, mas pra isso você deve saber que padrão usar. SHA1, MD5, Bcrypt, SSL, ciphers, salt, e muito mais: Você talvez tenha ouvido falar de algumas dessas palavras, mas chegou a hora de conhecer como funciona um processo de criptografia e tudo o que há de melhor sobre isso no PHP.

1
Git: do primeiro commit ao Pull Request
Talk by Jack Makiyama in Auditório G (45 minutes)

Se você está interessado em conhecer, e começar a trabalhar usando um controle de versão confiável e muito difundido nos ambientes de desenvolvimento. Esta palestra é para você! Vamos entender os primeiros passos para usar controle de versão fazendo um paralelo com problemas corriqueiros de quando não se usa um, como contribuir aos projetos open source ao redor do mundo e uma breve demonstração de publicações de projetos em servidores de produção com o auxílio dos hooks do git.

11:10 Anatomia de um ataque
Talk by Raphael Almeida in Auditório Central (45 minutes)

Diariamente milhares de incidentes de segurança são registrados no mundo, agora mesmo o seu site pode estar sofrendo um ataque. Pode não ser uma ação para tira-lo do ar, mas pode ser apenas o roubo de informações ou a escravização do servidor para uma botnet. Raramente um atacante utiliza apenas uma técnica em suas ações. Esta palestra vai tratar de casos reais de ataques a aplicações WEB, as técnicas utilizadas, como foi feita a recuperação do desastre e possíveis maneiras de eliminar futuros incidentes. Vamos tratar não só da aplicação, mas de todos os pontos vulneráveis em nosso ambiente. Com o conhecimento adquirido, seremos capazes de construir aplicações mais seguras, e escolher melhor os requisitos mínimos de ambiente necessários.

5
Introdução ao Git-Flow
Talk by Danubia Barreto in Auditório G (45 minutes)

Para tornar a vida dos usuários de Git mais fácil, foi criada essa extensão chamada git-flow, que ajuda a organizar seus repositórios git de uma forma mais fácil. Nessa palestra, saiba as funcionalidades do git-flow, para que serve, e como usá-lo em seu computador.

11:55
2
Almoço (1 hora 30) in Auditório Central (1 hour, 30 minutes)

Almoço (1 hora 30)

13:25
9
Painel das comunidades in Auditório Central (45 minutes)

Painel com os representantes das comunidades PHP parceiras

14:20 API 101: o que é, onde vive, como se alimenta?
Talk by Diana Ungaro Arnos in Auditório G (45 minutes)

API é uma sigla que tá na moda. Todo mundo fala sobre, consome, disponibiliza. Mas o que exatamente é uma API? Essa palestra vai responder a essa pergunta e mais: entenda conceitos como status code, autenticação, documentação de uma API e boas práticas.

4
Existe vida além do FTP
Talk by Gustavo Pereira in Auditório Central (45 minutes)

Você ainda utiliza o FTP para "subir" sua aplicaçâo? Seus colegas falam sobre deploy, Continuous Integration e você se sente em outro planeta? Nessa talk você vai ficar por dentro e principalmente entender a importância de publicar sua aplicação de forma simples, automatizando processos e reduzindo a dor de cabeça.

15:05
3
Coffee Break (1 hora) in Auditório Central (1 hour)

Coffee Break (1 hora)

16:05 Criando sua stack de deploy PHP com git, jenkins e ansible
Talk by Rodrigo Wanderley de Melo Cardoso in Auditório Central (45 minutes)

Quando você trabalha com aplicações que precisam de deploys constantes. Sempre nos perguntamos qual a melhor maneira de garantir deploys consistentes e reversíveis. Nessa palestra mostro como criar uma stack de deploy, onde em alguns segundos é possível subir uma nova versão e nos mesmos segundos, retornar para a versão antiga.

API RESTfull com Laravel
Talk by Camila Silva Fernandes in Auditório G (45 minutes)

O Laravel é um Framework, com sintaxe elegante e expressiva, que tem como principal característica ajudar a desenvolver aplicações seguras e robustas de forma ágil e eficiente, com uma documentação vasta e acessível, tornando fácil e rápido o desenvolvimento. Vamos aproveitar a agilidade para criação de rotas controlers e views que o Laravel nos proporciona para construir uma API Restfull simples para cadastro, edição, listagem e exclusão de Usuários

17:00 Docker Swarm vs Kubernetes
Talk by Wellington F. Silva in Auditório Central (45 minutes)

Nessa palestra explicaremos primeiramente os conceitos que definem o que é um orquestrados de contêineres, o que são plataformas de contêineres, o que são PAAS (Platform as a Service) e o que são sistemas operacionais distribuídos. Faremos um overview do Docker Swarm e do Kubernetes passando pelos seus históricos e em seguida faremos um comparativo de ambos mostrando as funcionalidade e vantagens de cada ferramenta.

Testes automatizados de API com o Codeception
Talk by Juciellen Cabrera in Auditório G (45 minutes)

Qual é a importancia dos testes automatizados para suas API’s? Quando falamos de testes automatizados a primeira coisa que vem à mente são testes unitários. Mas quando se trata de testar o comportamento de uma API os testes unitários não são suficientes. Precisamos assegurar se as respostas e status code da API estão conforme esperados. O Codeception é um framework PHP completo para testes automatizados com o qual podemos criar nossos testes de API.

Sunday 28th May 2017

08:45 Do REST ao GraphQL com PHP
Talk by Bruno Neves Menezes in Auditório Central (45 minutes)

Aberto para a comunidade em 2015, o GraphQL surgiu como uma alternativa poderosa, eficiente e bem documentada para construção de API’s. Foi desenvolvida e utilizada pelo Facebook por mais de 3 anos antes de sua publicação. Nessa conversa abordaremos os fundamentos da especificação, as principais diferenças com o REST e como desenvolver uma API GraphQL utilizando PHP.

Você teria 1 minuto para falar sobre Objects Calisthenics?
Talk by Alessandro Feitoza in Auditório G (45 minutes)

Sua aplicação está realmente bem escrita? Seu código está realmente bem legível? A manutenção está tão fácil quanto tirar doce de bebê? Não? Pois é, eu sei bem o que é isso. Objects Calisthenics são regras para um código melhor, e quando digo melhor não é apenas um código bonito, mas um código legível, saudável, e claro, que funcione sem muito trabalho. Boas regras de programação que foram criadas pela comunidade de desenvolvedores Java, mas que podem facilmente ser aplicadas ao PHP. A palavra Objeto (Object) está relacionada a Programação Orientada a Objeto (POO), já a palavra Calisthenics vem do grego, que significa exercício (exercises) no contexto da ginástica. Quando tentarmos seguir essas regras, iremos naturalmente mudar a forma como codamos. Ei macho véi, mas peraí, Isso não significa que você deve seguir todas elas, nem eu consigo. O mais interessante é tentar equilibrar, usar as regras com consciência, porque grandes poderes trazem grandes responsabilidades.

09:40 Programação Reativa Funcional e extensões para PHP
Talk by Juliana Chahoud in Auditório Central (45 minutes)

Currying? Observables? Map, Reduce? Aprenda as ideias por trás da programação reativa funcional sem ficar perdido com tantos jargões! Além desses principais conceitos, serão demonstrados alguns exemplos de uso de RxPHP, um conjunto de bibliotecas com extensões reativas para PHP.

Monitorando a segurança de dependências
Talk by Eliseu Borges do Amaral in Auditório G (45 minutes)

Hoje em dia as aplicações PHP utilizam dezenas de dependências de fornecedores distintos. Monitorar a segurança dessas dependências é bastante desafiador e por isso o uso de ferramentas que possam facilitar esse gerenciamento torna-se cada vez mais relevante. Essa palestra traça um panorama sobre a segurança das dependências, baseado no OWASP Top Ten – A9 e demonstra o uso de ferramentas que realizam a análise do projeto e informam se as dependências utilizadas, bem como suas versões, possuem vulnerabilidades publicamente descritas. Eliseu falará também sobre a importância de manter dependências atualizadas para a segurança do projeto, as fontes de informação sobre vulnerabilidades e a integração das ferramentas ao processo de desenvolvimento.

10:25
3
Coffee Break (30 min) in Auditório Central (30 minutes)

Coffee Break (30 min)

10:55
0
Painel sobre segurança Web
Talk by Raphael Almeida, Eliseu Borges, Cyrille Grandval in Auditório Central (45 minutes)

Painel sobre segurança Web

11:40
1
Almoço (1 hora) in Auditório Central (1 hour)

Almoço (1 hora)

12:40 Existe vida além da fábrica ?
Talk by Felipe Moura, Marcelo Neres, Lucas Campelo in Auditório Central (45 minutes)

Baseado em princípios do manifesto craftsmanship para o desenvolvimento de software e uso de metodologias ágeis, com scrum e kamban foi possível abandonar o modelo tradicional de fábrica de software e com isso construir software com qualidade, rapidez e menor custo para o cliente, conforme vamos demonstrar com o use case do Ministério das Relações Exteriores. Mostrar como o processo baseado em pessoas e investimento em inovação foi a ponte para desviar o cliente de um caminho repleto de atrasos e softwares de baixa qualidade a preços exorbitantes.

5+1 perguntas sobre dívida técnica
Talk by Maykel S. Braz in Auditório G (45 minutes)

Pilhas e pilhas de código ineficiente e confuso, funcionalidades cortadas, falta de domínio das regras, recursos subaproveitados. Quem nunca passou por isso desenvolvendo um software? É bem provável que você tenha um dívida técnica descontrolada e não saiba. Embora seja um termo utilizado já a algum tempo, nem todos estão familiarizados com a existência, causas e efeitos da dívida técnica. Esta apresentação objetiva conscientizar tanto desenvolvedores quanto líderes sobre estas causas e efeitos, além de apresentar dicas de como identificar e lidar com a dívida técnica.

13:35
4
Lightning talks in Auditório Central (45 minutes)

Lightning talks

14:20
0
Coffee Break (1 hora) in Auditório Central (1 hour)

Coffee Break (1 hora)

15:20
1
Review unknown code with static analysis
Talk by Damien Seguy in Auditório Central (45 minutes)

Code quality is not just for christmas, it is a daily part of the job. So, what do you do when you’re handed with a five feet long pole a million lines of code that must be vetted ? You call static analysis to the rescue. During one hour, we’ll be reviewing totally unknown code code : no name, no usage, not a clue. We’ll apply a wide range of tools, reaching for anything that helps us understand the code and form an opinion on it. Can we break this mystery and learn how everyone else is looking at our code ?

1
Principios de design de pacotes com php
Talk by Anisio Neto in Auditório G (45 minutes)

Se você nunca criou um pacote desde o início sabendo que existem princípios para te auxiliar em suas decisões do projeto de pacote. E se você já criou alguns, ou mesmo muitos pacotes, você será capaz de usar os Princípios de Design para corrigir problemas de design em pacotes existentes e tornar seu próximo pacote ainda melhor. Nessa palestra vamos debater sobre os Princípios e responder a perguntas do tipo: Quais classes pertencem a este pacote e quais não? Quais pacotes são estáveis para depender e quais não são? O que posso fazer para que meus usuários melhorem a usabilidade de um pacote? O que posso fazer por mim mesmo para manter um pacote compatível?

16:15
4
Motivação x Profissional Eficaz in Auditório Central (45 minutes)

No atual cenário corporativo a produtividade vem sendo cada vez mais exigida a curto prazo. Para obtenção de melhores resultados faz-se necessário pessoas capacitadas, motivadas e comprometidas com o que fazem. O intuito dessa palestra é explorar temas que remetem o profissional a pensar na forma como executam o seu trabalho e ações necessárias para executa-lo com eficácia. Se você ainda se identifica com a famosa frase do futebol “Em time que está ganhando não se mexe”, definitivamente essa palestra é para você! Slides da palestra: https://www.slideshare.net/vinnyfs89/motivacao-x-profissional-eficaz

3
Test Like a Hero!
Talk by Ronaiza Cardoso in Auditório G (45 minutes)

Testar é uma das práticas mais importantes do desenvolvimento de software, a famosa frase: está pronto, agora só falta testar não soa muito bem quanto se está trabalhando em um projeto sério onde erros podem afundar um projeto. Ter em mente que é preciso testar o software é um diferencial muito grande entre os desenvolvedores, pois isso reafirma que ele se preocupa com a qualidade do mesmo. Nesta palestra irei apresentar algumas técnicas sobre testes e por fim mostrar um exemplo utilizando teste unitário.

17:05
0
Encerramento do Darkmira Tour PHP 2017 in Auditório Central (20 minutes)

Encerramento do Darkmira Tour PHP 2017