Rick and Morty API Java Client

Rick and Mordy on Adult Swim
Padrão

Recentemente, enquanto gastava meu tempo navegando em coisas aleatórias, me deparei com um projeto interessante do Axel Fuhrmann.

Trata-se de uma API Rest para consulta de informações do desenho Rick and Morty do Adult Swim (o qual eu sou fã de carteirinha).

A API traz informações sobre personagens (Characters), episódios e planetas (Locations) relacionados entre si. A forma de consulta e simples e objetiva e eu gostei muito do que pude ver.

Consultando a Documentação da API pude verificar que diversas implementações de clientes nativos para várias linguagens (tais como Python, Ruby, Elixir, etc…)e vi que não havia uma versão Java para tal. Neste momento, resolvi implementar esse cliente nativo em Java. Eis que nasce a Rick and Morty API Java Client.

O cliente e bem simples e consiste em encapsular as chamadas para o serviço de forma intuitiva para cada Objeto desejado. Por exemplo, digamos que queiramos obter informações do Personagem Rick Sanchez, que na API esta relacionado com o ID 1. Faríamos algo como:

// Iniciamos um objeto Character com o ID 1
Character rickSanchez = character.setId(1);
// Atualizamos os dados do modelo
rickSanchez.refresh();
// Verificando o nome do modelo atualmente
assertEquals("Rick Sanchez", rickSanchez.getName());

Da mesma forma, cada relacionamento traz uma lista de Objetos contendo apenas o ID do mesmo e deve ser feito o `refresh` para fazer o fetch das informações da API.

Implementar este cliente foi um exercício interessante e eu gostei muito do resultado. Espero que gostem!

Erro no PhpMyAdmin com MariaDB

Padrão

Recentemente, enquanto efetuava a configuração do servidor do blog, me deparei com um erro chato no PhpMyAdmin quando usado em conjunto com o MariaDB.

O problema se dá por conta de um problema de compatibilidade com o PHP 7.2 e não por conta do MariaDB.

A solução e bem simples. Basta executar o comando:

sudo sed -i "s/|\s*\((count(\$analyzed_sql_results\['select_expr'\]\)/| (\1)/g" /usr/share/phpmyadmin/libraries/sql.lib.php

…e pronto! Sem mais erros.

Classe utilitária pra ler e gerar número de código de barras

Link

A um tempo atras precisei lidar com processamento de dados provenientes de código de barra de boleto e, depois de entender que o código de barras não reflete o numero exibido no boleto, resolvi criar esta classe utilitária para fazer a transformação bilateral dos dados.

Nesta classe é possível trabalhar com boletos tradicionais e/ou contas de serviços contratados (luz, água, gás).

Classe: https://gist.github.com/adrianoluis/610d58655c48a187ffaa7ed85cbe0843
Testes: https://gist.github.com/adrianoluis/f25d5ef62c5e9bd1336d58d6f90ad242

Biblioteca Pagar.Me em Java

Link

Recentemente tive a oportunidade de trabalhar com a integração de um sistema de vendas com o PSP Pagar.Me. No entanto encontrei dificuldades para implementar meu código pois a API deles não e fornecida em Java. Então, tomei a iniciativa de implementar a API em Java para consumir os serviços e disponibiliza-los nos mesmos moldes já consolidados nas linguagens oferecidas por eles. Segue o link no GitHub para download: https://github.com/adrianoluis/pagarme-java

Como adicionar programas no PATH do MacOS

Padrão

A algum tempo, quando voltei a mexer com MacOS me deparei com um dilema que me tirou algumas noites de sono: Como colocar programas no PATH do sistema?!

Depois de um tempo pesquisando na internet e navegando entre as pastas do sistema operacional me deparei com o caminho /etc/paths.d.

Pude notar que, ao instalar o Git usando a distribuição do site, o instalador colocou um arquivo nesta pasta contendo o caminho dos arquivos executáveis do programa. Daí caiu a ficha.

O MacOS varre o diretório /etc/paths.d em busca de arquivos e sempre que os encontra, lê o seu conteúdo e coloca no PATH do sistema. Algo tão simples mas tão genial.

Para programas com múltiplas pastas contendo arquivos executáveis basta colocar cada caminho em uma linha do arquivo.

path_helper manual

Alguns exemplos que tenho no meu MacBook:

macadriano:/etc/paths.d adriano$ cat android
/Volumes/Users/AndroidSDK/platform-tools
/Volumes/Users/AndroidSDK/tools
macadriano:/etc/paths.d adriano$ cat sublime-text
/Applications/Sublime Text.app/Contents/SharedSupport/bin
macadriano:/etc/paths.d adriano$ cat ports
/opt/local/bin
/opt/local/sbin

Playstation 3 em português brasileiro

Padrão

A Sony liberou a atualização 4.00 do firmware do Playstation 3. O update torna o console compatível com o PS Vita que será lançado no mês que vem no Japão e adiciona o português brasileiro (YEAH!) na lista de idiomas do sistema.

Palavras como “arranque” e “fichários” já foram substituídas por “carregar” e “arquivos”, por exemplo.

O firmware 4.0 já está disponível e seu download é obrigatório.

Fonte: Outer Space

Integração CakePHP com YOURLS

Link

Recentemente me vi de frente com um desafio muito interessante no qual a empresa em que trabalho adquiriu um domînio para encurtamento de url e implementamos o YOURLS (Your Own URL Shorter) para fazer o trabalho “sujo” de manter os links organizadamente curtos. O ponto era que eu precisava pegar essas urls de forma dinâmica para colocar no botão do twitter e disponibilizar na view do cake quando renderizadas.

Não mais que imediatamente comecei a pesquisar para ver se achava algum plugin para tal e não foi a minha surpresa ao saber que nada havia sido feito ainda. Resolvei então por mãos a obra e fazer o meu próprio.

O projeto está hospedado no GitHub.

Desenvolvimento PHP com SQL Server

Padrão

Recentemente estive de frente com um desafio daqueles que nos deixa alguns dias sem sono.

Como todos sabem estou trabalhando na SoluTudo, empresa que tem como objetivo facilitar o acesso a informações de empresas por meio de um sistema de busca inteligente na web e um disk para quem preferir o bom e velho telefone.

Pois bem! A atual plataforma que sustenta o site (e diretamente o sistema interno de consulta do disk) e toda feita em ASP (não o ASP.Net) e SQL Server, com muito código nas telas e pouca identação. Um verdadeiro DESAFIO!

Minha proposta para aprimorar o desenvolvimento, torna-lo mais rapido e divertido foi adotar o framework CakePHP junto com a base de dados em SQL Server, de primeira instância. O primeiro desafio encontrado foi com relação a paginação efetuada pelo Cake com o banco em questão. Ela não funcionava 100%. Resolvi procurar uma solução e rapidamente encontrei um trecho de script que efetuava a paginação de forma aceitavel. Menos um problema!

O proximo problema foi fazer com que campos do tipo “ntext” fossem exibidos corretamente. Lá vamos nos novamente procurar uma forma de solucionar esse “abacaxi” nos padrões do Cake. Encontrei um trecho de codigo que detectava o tipo do campo, e sendo text, fazia o cast para varchar com tamanho 8000 (ou seja, um POG).

Não tenho o código comigo agora, mais irei efetuar o fork do projeto do Cake no Github e solicitar a inclusão do arquivo dbo_sybase.php que tenho.

No mais, é isso galera! Bons códigos a todos!

Novo desafio…

Padrão

Aqui estou novamente, me preparando para dar início a um novo desafio na minha vida. A exatamente 1 semana eu deixei São Paulo rumo ao interior (mais precisamente minha cidade natal, Botucatu) para focar em outro projeto. Não vou entrar em detalhes agora, pois nem mesmo eu sei ao certo o que será, mas posso adiantar que estou com um ótimo pressentimento a respeito.

Assim que tiver qualquer posicionamento a respeito, posto por aqui.