6º Moip HackDay (04/08/17)

André Jardim Protti
Wirecard Brasil
Published in
6 min readAug 7, 2017

Terminado mais um HackDay! A qualidade e quantidade dos projetos foi tamanha nessa edição que finalmente resolvemos tomar vergonha na cara e começar a documentar tudo que aconteceu e especialmente o que foi criado no dia.

Mas o que é o HackDay? É uma mini-hackathon focada em entregar projetos curtos e inovadores de forma a incentivar criatividade, colaboração e uso de novas tecnologias entre os devs. É uma prática muito bacana, difundida entre empresas como a Netflix.

Sem mais delongas, vamos aos projetos desenvolvidos no dia!

Harold the Herald

Harold permite fazer pronunciamentos no escritório com apenas um comando no Slack! Digamos que alguém queira avisar que um deploy importante está prestes a acontecer, basta escrever "/harold "Deploy crítico na aplicação X está prestes a acontecer! Atenção!".

Pipeline da aplicação

Após o comando ser enviado, um Raspberry Pi conectado em uma caixinha de som usa a API do Google Translate para transformar o texto na fala a ser reproduzida em áudio.

Harold recebendo novos pedidos

Brenjoei Bot

Recentemente foi criado o channel #brenjoei no Slack para moipers anunciarem o que estão vendendo. Teve tanta demanda que ficou difícil saber o que estava sendo vendido e se determinado item já tinha sido vendido. Com o bot todos podem ver as ofertas ativas:

Além do bot foram criados dois slash commands:

Moip-CLI

Foi criada uma command line interface para auxiliar no processo de logar nas máquinas de integração, sandbox e produção. Com esse CLI, fica mais fácil encontrar os IP's das máquinas e ver logs, por exemplo. Especialmente legal para ajudar os novos funcionários!

One-shot Check-in

Usar de forma eficiente salas de reunião é sempre problemático. Uma solução proposta no HackDay foi utilizar um app android, QR Codes nas salas de reunião e a API do Google Calendar para marcar reuniões em salas vazias.

Assim vai ficar mais fácil marcar reuniões de última hora e deixar no calendário compartilhado reservado o horário! O grupo também pretende permitir pelo app indicar que a reunião acabou, livrando o horário no calendário de todos.

Moissenger

Espécie de twitter corporativo para aquelas situações que não compensam um e-mail para todos. Uma forma de melhorar a comunicação interna sem lotar a caixa de todos.

Exigindo login com email do moip, o Moissenger tem potencial para ajudar muito na comunicação rápida para a empresa toda de eventos, anúncios, alertas. Sem poluir a caixa de e-mails de ninguém!

Pérola Man

Toda equipe que usa Slack eventualmente registra mais pérolas do que o limite de respostas automáticas do slackbot, gerando "gambiarras" para continuar cadastrando as frases perdidas e comprometedoras que acabamos ouvindo no dia a dia. Pérola Man resolve o problema!

Pérola fresquinha sendo adicionada

Foram criadas diversas funcionalidades para facilitar encontrar as melhores pérolas para cada momento. Até mesmo um comando completo de ajuda para exibir as funcionalidades.

Event Check-in

O Moip costuma receber muitos eventos e MeetUps e sempre é um trabalho manual razoavelmente chato averiguar quem de fato compareceu em um determinado evento.

A idéia é usar QR codes disponibilizados na entrada dos eventos ao invés de ficar usando planilhas para conferir os participantes presentes. Ou seja, ter um sistema que centralize essas informações e diminua a quantidade de trabalho manual na organização de eventos.

isV2

Foi implementada nas respostas de criação de pedidos um campo "platform"que indica qual a versão da plataforma que está em uso, facilitando o atendimento e acelerando a investigação de problemas.

PWA Wars

A ideia desse projeto foi de explorar o conceito de Progressive Web Apps (PWA) por meio de uma página com informações da API do StarWars. O resultado você pode conferir em seu smartphone Android acessando bit.ly/pwastarwars !

Beco Diagonal

Sistema que utiliza serviços de IA para identificar tweets positivos sobre um determinado assunto e a ideia era tweetar uma oferta ou promoção direcionada para a pessoa como resposta de forma automatizada.

Daily Bot

Bot de slack para facilitar as daily meetings. Ele recebe as respostas de cada participante de forma privada e depois responde no canal adequado, indicando o que cada um fez, se teve impedimentos e no que está trabalhando agora.

Mensageria Moip News

Nova feature para a Conta Moip, com uma sessão que apresenta notícias e mensagens direcionadas para os usuários.

Uma boa forma de circular ainda mais informações relevantes para os nossos clientes sem necessariamente enviar e-mails, muita vezes indesejados e ignorados.

Mockafka

Mockafka foi o nome dado a essa lib open source que serve como uma DSL para testes de topologias Kafka sem precisar da instalação do próprio Kafka e do Zookeeper! Exemplo de uso:

Map<Integer, Integer> input = Stream.of(1, 2, 3, 4, 5, 6, 7)
.collect(Collectors.toMap(k -> k, v -> v));

Serde<Integer> integerSerde = Serdes.Integer();

Map<Integer, Integer> output = Mockafka
.builder()
.topology(builder ->
builder.stream(integerSerde, integerSerde, "numbersTopic")
.filter((key, value) -> value % 2 == 1)
.to(integerSerde, integerSerde, "oddNumbersTopic")
)
.input("numbersTopic", integerSerde, integerSerde, input)
.output("oddNumbersTopic", integerSerde, integerSerde, 4);

assertEquals(4, output.size());
assertEquals(1, (int) output.get(1));
assertEquals(3, (int) output.get(3));
assertEquals(5, (int) output.get(5));
assertEquals(7, (int) output.get(7));

Já está disponível no Github no seguinte link: https://github.com/carlosmenezes/mockafka

E também no Maven Central! Só adicionar no seu pom.xml:

<dependency>
<groupId>com.github.carlosmenezes</groupId>
<artifactId>mockafka</artifactId>
<version>0.1.1</version>
<scope>test</scope>
</dependency>

Ou no seu build.gradle:

testCompile "com.github.carlosmenezes:mockafka:0.1.1"

E foi isso!

Muitas ideias bacanas saíram do papel e estão prontas para agregar no dia a dia no Moip! Seja porque vão ser diretamente utilizadas ou porque seus participantes desenvolveram habilidades e praticaram o uso de novas tecnologias.

Até o próximo HackDay!

--

--