Pipeline de dados - A magia por trás das cortinas

No FuiNomeado, utilizamos a engenharia de dados para de garantir que nenhum concurseiro perca sua nomeação por falta de informação.

Pipeline de dados - A magia por trás das cortinas

Para cada diário oficial que baixamos existe uma lógica que temos que entender e então programar nossos algorítimos para "entender" quando um novo diário oficial é publicado. O desafio vai desde de prever o momento certo para tentar fazer o download quanto criar o link de forma correta e, quando tudo isso não funcionar, ter um plano para tentar de novo sem precisar da interação humana.

Nada disso é novo, nada disso é especial. O que descrevemos acima é o dia a dia normal de qualquer engenheiro de dados. No entanto, nós do FuiNomeado decidimos utilizar nossos conhecimentos de engenharia de dados para auxiliar aquele concurseiro aprovado a não perder sua noemação. Essa é a unica diferença.

Como diz o ditado, a diferença está no detalhe. E é por isso que temos todo o cuidado do mundo em hackear cada um dos diário oficiais, entender como eles funcionam e colocar nossos robôs em prol da sua nomeação.

Estágio 1 - Entendedo a magia das publicaçãoes

Tudo se resume a como é a composta a URL do link. Em geral são três as formas:

  1. Data ascentedente. Nesse caso a única coisa que muda na URL é a data da publicação.
  2. Número crescente. Nesse caso, se a publicação de ontem foi a 1042 amanha será a 1053 e assim por diante.
  3. Tag aleatória. Nesse caso não tem lógica, aí temos que apelar para outras soluções

Nos casos 1 e dois é mais traquilo, basta fazer a requisição contra o número crescente, se o retorno der 200 é porque um novo diário foi publicado se der 404 é porque ainda não foi publicado qualquer coisa diferente que isso tentaremos novamente.

No caso 3 é mais complicado, ao invés de tentar lidar direto com a URL nós temos que simular que estamos usando um navegador, navegar pela página, encontrar o link, verificar se já lemos esse link antes e, se não, ler o link novamente. Você achou isso complicado? Imagine passar em um concurso público e perder a informação da noemação. É por iss que fazemos tudo por vocês.

Estágio 2 - O presente é agora e é ele que paga as contas

Após todas as etapas anteriores finalmente temos o link com o diário oficial funcionado e pronto para fazer o download. Essa parte é fácil, utilizamos o link para acessar o arquivo binário (vulgo PDF) e salvar ele localmente. Com esse arquivo salvo temos tudo que necessário para o próximo passo relacionado ao arquivo de hoje mas, antes de seguir, e se tivermos esquecido alguma coisa?

Estágio 3 - Preparando o passado que importa

Logo após a ciência de conseguir o arquivo de hoje fazemos um pente fino nas publicações anteriores para tentar achar na data de otem (ou nos arquivos antes do dia de ontem) arquivos que eventualmente nós não tenhamos baixado.

Caso tenhamos sucesso em encontrar um novo arquivo em datas anteriores e que não fomos capazes de encontrar no próprio dia, marcamos o arquivo para uma supervisão humana e essa supervisão irá virar especificação de melhoria para a próxima versão do nosso código.

Por isso essa etapa é importante afinal, não é sobre tentar fazer o que é certo. É sobre ativamente buscar o que, eventualmente, podemos ter feito de errado. Como você pode ver, buscamos a excelência em cada mínimo detalhe.

Estágio 4 - Lidando com o extraordinário

Antes de partir para a etapa de leitura ainda temos um último passo pois existem edições extras de diário oficial. Nem tudo é o diário ordinário onde esperamos normalmente que ele seja publicado e geralmente ele tem uma cadência de horário.

As edições extraordinárias é que são as mais perigosas, elas não tem hora para sair. Elas podem ser grandes ou pequenas. Podem sair no primeiro horário da manhã ou tarde da noite no mesmo dia.

Como essas edições podem ter nomeções e informações importantes nós temos uma intensa busca. Geralmente fazer igual o Burro do Shreck: perguntamos a cada 5 minutos se tem uma nova publicação. Se a resposta for sim então o processo do passo 2 tem que ser iniciado.

Estágio 5 - Só adianta ter o livro se você sabe ler

Diário na mão agora podemos fazer a busca? Na realidade não. Isso porque cada diário tem um começo e um final. Alguns diários tem somente uma coluna outros them 3 e até 4 colunas.

Por que nos precupamos com isso? Por que algumas vezes a publicação do nome de uma pessoa sai metade em uma coluna metade em outra. Ou, metade em uma página e metade em outra. Se dependermos da leitura direta o nosso índice de assertividade seria baixíssimo

O primeiro passo é definir através de cálculos onde o conteúdo que realmente importa está localizado. É como se fizessemos um retângulo para apontar para o código de leitura o que ele deve considerar e o que ele deve ignorar.

Com o contorno criado passamos ao segundo passo que é o de identificar onde começa e onde termina cada uma das colunas. Assim temos certeza de que, mesmo se o seu nome estiver publicado em mais de uma coluna nós teremos a capacidade de encontrá-lo.

Após a definição do quadro de leitura e do tamanho da coluna o código varre todo o texto e tranforma tudo em uma grande lista de nomes e aí sim, finalmente, podemos buscar pelo seu nome e saber se saiu a sua nomeação.

Estágio 6 - Faca e queijo não mão agora é fácil

Agora entre a fase final da etapa de busca. Que é no caso... buscar! 😄

E ainda assim essa busca não é coisa simples, utilizamos uma série de algoritmos de busca e ciência de ponta para garantir uma boa assertividade de resultados. Caso você tenha interesse em saber mais como funciona essa etapa confira essa postagem onde explicamos tudo que fazemos para buscar o seu nome.

Estágio 7 - O aviso

Agora sim estamos prontos para emitir os avisos. Com o seu nome localizado guardamos junto a link do diário oficial onde originalmente baixamos o arquivo, jutamos o link do arquivo com os detalhes da publicação e te chamamos no email ou no email e whatsapp caso você seja usuário premium. Falando em usuário premium você já considerou se tornar um usuário premium?

Pois bem, não é fácil, cada diário tem as suas peculiaridades cada estado no Brasil é um "mini país". Mas nós trabalhamos incansavelmente para entender cada um desses estados e trazer a informação na hora certa pra você. Muito obrigado por nos seguir até aqui, esperamos que sua caminhada seja se sucesso!